diff --git a/src/Bicep.Core.Samples/DataSets.cs b/src/Bicep.Core.Samples/DataSets.cs index aa03380fc7f..0eb2f099a35 100644 --- a/src/Bicep.Core.Samples/DataSets.cs +++ b/src/Bicep.Core.Samples/DataSets.cs @@ -1,6 +1,5 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Linq; @@ -32,6 +31,8 @@ public static class DataSets public static DataSet InvalidVariables_LF => CreateDataSet(); + public static DataSet LargeTemplate_LF => CreateDataSet(); + public static DataSet Loops_LF => CreateDataSet(); public static DataSet Outputs_CRLF => CreateDataSet(); diff --git a/src/Bicep.Core.Samples/Files/LargeTemplate_LF/main.bicep b/src/Bicep.Core.Samples/Files/LargeTemplate_LF/main.bicep new file mode 100644 index 00000000000..57b6a8b8955 --- /dev/null +++ b/src/Bicep.Core.Samples/Files/LargeTemplate_LF/main.bicep @@ -0,0 +1,17337 @@ +targetScope = 'managementGroup' + +@maxLength(5) +param topLevelManagementGroupPrefix string + +var scope = '/providers/Microsoft.Management/managementGroups/${topLevelManagementGroupPrefix}' +var policies = { + policyDefinitions: [ + { + properties: { + Description: 'Deploys the diagnostic settings for Container Instances to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.' + DisplayName: 'Deploy Diagnostic Settings for Container Instances to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.ContainerInstance/containerGroups' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.ContainerInstance/containerGroups/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-ACI' + } + { + Properties: { + Description: 'Depoloys a default budget on subscriptions.' + DisplayName: 'Deploy a default budget on subscriptions' + Mode: 'All' + Parameters: { + amount: { + type: 'string' + defaultValue: '1000' + metadata: { + description: 'The total amount of cost or usage to track with the budget' + } + } + timeGrain: { + type: 'string' + defaultValue: 'Monthly' + allowedValues: [ + 'Monthly' + 'Quarterly' + 'Annually' + 'BillingMonth' + 'BillingQuarter' + 'BillingAnnual' + ] + metadata: { + description: 'The time covered by a budget. Tracking of the amount will be reset based on the time grain.' + } + } + firstThreshold: { + type: 'string' + defaultValue: '90' + metadata: { + description: 'Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0 and 1000.' + } + } + secondThreshold: { + type: 'string' + defaultValue: '100' + metadata: { + description: 'Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0 and 1000.' + } + } + contactRoles: { + type: 'array' + defaultValue: [ + 'Owner' + 'Contributor' + ] + metadata: { + description: 'The list of contact RBAC roles, in an array, to send the budget notification to when the threshold is exceeded.' + } + } + contactEmails: { + type: 'array' + defaultValue: [] + metadata: { + description: 'The list of email addresses, in an array, to send the budget notification to when the threshold is exceeded.' + } + } + contactGroups: { + type: 'array' + defaultValue: [] + metadata: { + description: 'The list of action groups, in an array, to send the budget notification to when the threshold is exceeded. It accepts array of strings.' + } + } + } + metadata: { + version: '1.0.0' + category: 'Budget' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: 'DeployIfNotExists' + details: { + type: 'Microsoft.Consumption/budgets' + deploymentScope: 'Subscription' + existenceScope: 'Subscription' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Consumption/budgets/amount' + equals: '[parameters(\'amount\')]' + } + { + field: 'Microsoft.Consumption/budgets/timeGrain' + equals: '[parameters(\'timeGrain\')]' + } + { + field: 'Microsoft.Consumption/budgets/category' + equals: 'Cost' + } + ] + } + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' + ] + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + amount: { + value: '[parameters(\'amount\')]' + } + timeGrain: { + value: '[parameters(\'timeGrain\')]' + } + firstThreshold: { + value: '[parameters(\'firstThreshold\')]' + } + secondThreshold: { + value: '[parameters(\'secondThreshold\')]' + } + contactEmails: { + value: '[parameters(\'contactEmails\')]' + } + contactRoles: { + value: '[parameters(\'contactRoles\')]' + } + contactGroups: { + value: '[parameters(\'contactGroups\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + amount: { + type: 'string' + } + timeGrain: { + type: 'string' + } + firstThreshold: { + type: 'string' + } + secondThreshold: { + type: 'string' + } + contactEmails: { + type: 'array' + } + contactRoles: { + type: 'array' + } + contactGroups: { + type: 'array' + } + startDate: { + type: 'string' + defaultValue: '[concat(utcNow(\'MM\'), \'/01/\', utcNow(\'yyyy\'))]' + } + } + resources: [ + { + type: 'Microsoft.Consumption/budgets' + apiVersion: '2019-10-01' + name: 'default-sandbox-budget' + properties: { + timePeriod: { + startDate: '[parameters(\'startDate\')]' + } + timeGrain: '[parameters(\'timeGrain\')]' + amount: '[parameters(\'amount\')]' + category: 'Cost' + notifications: { + NotificationForExceededBudget1: { + enabled: true + operator: 'GreaterThan' + threshold: '[parameters(\'firstThreshold\')]' + contactEmails: '[parameters(\'contactEmails\')]' + contactRoles: '[parameters(\'contactRoles\')]' + contactGroups: '[parameters(\'contactGroups\')]' + } + NotificationForExceededBudget2: { + enabled: true + operator: 'GreaterThan' + threshold: '[parameters(\'secondThreshold\')]' + contactEmails: '[parameters(\'contactEmails\')]' + contactRoles: '[parameters(\'contactRoles\')]' + contactGroups: '[parameters(\'contactGroups\')]' + } + } + } + } + ] + } + } + } + } + } + } + } + name: 'Deploy-Budget' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Container Registry to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.' + DisplayName: 'Deploy Diagnostic Settings for Container Registry to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.ContainerRegistry/registries' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.ContainerRegistry/registries/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'ContainerRegistryLoginEvents' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ContainerRegistryRepositoryEvents' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-ACR' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Activity Log to stream to a Log Analytics workspace when any Activity Log which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with category enabled.' + DisplayName: 'Deploy Diagnostic Settings for Activity Log to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Primary Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + deploymentScope: 'Subscription' + existenceScope: 'Subscription' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + logAnalytics: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + name: 'subscriptionToLa' + type: 'Microsoft.Insights/diagnosticSettings' + apiVersion: '2017-05-01-preview' + location: 'Global' + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + logs: [ + { + category: 'Administrative' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Security' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ServiceHealth' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Alert' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Recommendation' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Policy' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Autoscale' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ResourceHealth' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + } + } + } + } + name: 'Deploy-Diagnostics-ActivityLog' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Kubernetes Service to stream to a Log Analytics workspace when any Kubernetes Service which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.' + DisplayName: 'Deploy Diagnostic Settings for Kubernetes Service to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.ContainerService/managedClusters' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.ContainerService/managedClusters/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'kube-audit' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'kube-apiserver' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'kube-controller-manager' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'kube-scheduler' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'cluster-autoscaler' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'guard' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'kube-audit-admin' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-AKS' + } + { + Properties: { + Description: 'This policy deploys virtual network and peer to the hub' + DisplayName: 'Deploys virtual network peering to hub' + Mode: 'All' + Parameters: { + vNetName: { + type: 'String' + metadata: { + displayName: 'vNetName' + description: 'Name of the landing zone vNet' + } + } + vNetRgName: { + type: 'String' + metadata: { + displayName: 'vNetRgName' + description: 'Name of the landing zone vNet RG' + } + } + vNetLocation: { + type: 'String' + metadata: { + displayName: 'vNetLocation' + description: 'Location for the vNet' + } + } + vNetCidrRange: { + type: 'String' + metadata: { + displayName: 'vNetCidrRange' + description: 'CIDR Range for the vNet' + } + } + hubResourceId: { + type: 'String' + metadata: { + displayName: 'hubResourceId' + description: 'Resource ID for the HUB vNet' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: 'deployIfNotExists' + details: { + type: 'Microsoft.Network/virtualNetworks' + name: '[parameters(\'vNetName\')]' + deploymentScope: 'Subscription' + existenceScope: 'ResourceGroup' + ResourceGroupName: '[parameters(\'vNetRgName\')]' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' + ] + existenceCondition: { + allOf: [ + { + field: 'name' + like: '[parameters(\'vNetName\')]' + } + { + field: 'location' + equals: '[parameters(\'vNetLocation\')]' + } + ] + } + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + vNetRgName: { + value: '[parameters(\'vNetRgName\')]' + } + vNetName: { + value: '[parameters(\'vNetName\')]' + } + vNetLocation: { + value: '[parameters(\'vNetLocation\')]' + } + vNetCidrRange: { + value: '[parameters(\'vNetCidrRange\')]' + } + hubResourceId: { + value: '[parameters(\'hubResourceId\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + vNetRgName: { + type: 'string' + } + vNetName: { + type: 'string' + } + vNetLocation: { + type: 'string' + } + vNetCidrRange: { + type: 'string' + } + vNetPeerUseRemoteGateway: { + type: 'bool' + defaultValue: false + } + hubResourceId: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-lz-vnet-\',substring(uniqueString(subscription().id),0,6),\'-rg\')]' + location: '[parameters(\'vNetLocation\')]' + dependsOn: [] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2020-06-01' + name: '[parameters(\'vNetRgName\')]' + location: '[parameters(\'vNetLocation\')]' + properties: {} + } + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2020-06-01' + name: 'NetworkWatcherRG' + location: '[parameters(\'vNetLocation\')]' + properties: {} + } + ] + outputs: {} + } + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-lz-vnet-\',substring(uniqueString(subscription().id),0,6))]' + dependsOn: [ + '[concat(\'es-lz-vnet-\',substring(uniqueString(subscription().id),0,6),\'-rg\')]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualNetworks' + apiVersion: '2020-06-01' + name: '[parameters(\'vNetName\')]' + location: '[parameters(\'vNetLocation\')]' + dependsOn: [] + properties: { + addressSpace: { + addressPrefixes: [ + '[parameters(\'vNetCidrRange\')]' + ] + } + } + } + { + type: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' + apiVersion: '2020-05-01' + name: '[concat(parameters(\'vNetName\'), \'/peerToHub\')]' + dependsOn: [ + '[parameters(\'vNetName\')]' + ] + properties: { + remoteVirtualNetwork: { + id: '[parameters(\'hubResourceId\')]' + } + allowVirtualNetworkAccess: true + allowForwardedTraffic: true + allowGatewayTransit: false + useRemoteGateways: '[parameters(\'vNetPeerUseRemoteGateway\')]' + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-lz-hub-\',substring(uniqueString(subscription().id),0,6),\'-peering\')]' + subscriptionId: '[split(parameters(\'hubResourceId\'),\'/\')[2]]' + resourceGroup: '[split(parameters(\'hubResourceId\'),\'/\')[4]]' + dependsOn: [ + '[parameters(\'vNetName\')]' + ] + properties: { + mode: 'Incremental' + expressionEvaluationOptions: { + scope: 'inner' + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + remoteVirtualNetwork: { + Type: 'string' + defaultValue: false + } + hubName: { + Type: 'string' + defaultValue: false + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' + name: '[[concat(parameters(\'hubName\'),\'/\',last(split(parameters(\'remoteVirtualNetwork\'),\'/\')))]' + apiVersion: '2020-05-01' + properties: { + allowVirtualNetworkAccess: true + allowForwardedTraffic: true + allowGatewayTransit: true + useRemoteGateways: false + remoteVirtualNetwork: { + id: '[[parameters(\'remoteVirtualNetwork\')]' + } + } + } + ] + outputs: {} + } + parameters: { + remoteVirtualNetwork: { + value: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'vNetRgName\'), \'/providers/\',\'Microsoft.Network/virtualNetworks/\', parameters(\'vNetName\'))]' + } + hubName: { + value: '[split(parameters(\'hubResourceId\'),\'/\')[8]]' + } + } + } + } + ] + outputs: {} + } + } + resourceGroup: '[parameters(\'vNetRgName\')]' + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-VNET-HubSpoke' + } + { + properties: { + Description: 'This policy denies the creation of Azure Kubernetes Service non-private clusters' + DisplayName: 'Public network access on AKS API should be disabled' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Kubernetes' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.ContainerService/managedClusters' + } + { + field: 'Microsoft.ContainerService/managedClusters/apiServerAccessProfile.enablePrivateCluster' + notequals: 'true' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-Aks' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Analysis Services to stream to a Log Analytics workspace when any Analysis Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Analysis Services to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.AnalysisServices/servers' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.AnalysisServices/servers/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Engine' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Service' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-AnalysisService' + } + { + properties: { + Description: 'Deploys the diagnostic settings for API Management to stream to a Log Analytics workspace when any API Management which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for API Management to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.ApiManagement/service' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.ApiManagement/service/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'Gateway Requests' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + { + category: 'Capacity' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + { + category: 'EventHub Events' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + { + category: 'Network Status' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'GatewayLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-APIMgmt' + } + { + properties: { + Description: 'This policy enables you to restrict that Application Gateways is always deployed with WAF enabled' + DisplayName: 'Application Gateway should be deployed with WAF enabled' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/applicationGateways' + } + { + field: 'Microsoft.Network/applicationGateways/sku.name' + notequals: 'WAF_v2' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-AppGW-Without-WAF' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Application Gateway to stream to a Log Analytics workspace when any Application Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Application Gateway to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/applicationGateways' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/applicationGateways/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'ApplicationGatewayAccessLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ApplicationGatewayPerformanceLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ApplicationGatewayFirewallLog' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-ApplicationGateway' + } + { + properties: { + Description: 'Deploys the diagnostic settings for App Service Plan to stream to a Log Analytics workspace when any App Service Plan which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for App Service Plan to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Web/serverfarms' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Web/serverfarms/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-WebServerFarm' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Web App to stream to a Log Analytics workspace when any Web App which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for App Service to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Web/sites' + } + { + value: '[field(\'kind\')]' + notContains: 'functionapp' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Web/sites/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'AppServiceAntivirusScanAuditLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceHTTPLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceConsoleLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceHTTPLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceAppLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceFileAuditLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceAuditLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceIPSecAuditLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServicePlatformLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-Website' + } + { + properties: { + Description: 'Deploys the Azure Defender settings in Azure Security Center for the specific services.' + DisplayName: 'Deploy Azure Defender settings in Azure Security Center.' + Mode: 'Indexed' + Parameters: { + pricingTierVMs: { + type: 'String' + metadata: { + displayName: 'pricingTierVMs' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierSqlServers: { + type: 'String' + metadata: { + displayName: 'pricingTierSqlServers' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierAppServices: { + type: 'String' + metadata: { + displayName: 'pricingTierAppServices' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierStorageAccounts: { + type: 'String' + metadata: { + displayName: 'pricingTierStorageAccounts' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierContainerRegistry: { + type: 'String' + metadata: { + displayName: 'pricingTierContainerRegistry' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierKeyVaults: { + type: 'String' + metadata: { + displayName: 'pricingTierKeyVaults' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierKubernetesService: { + type: 'String' + metadata: { + displayName: 'pricingTierKubernetesService' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierDns: { + type: 'String' + metadata: { + displayName: 'pricingTierDns' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierArm: { + type: 'String' + metadata: { + displayName: 'pricingTierArm' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Security Center' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Security/pricings' + deploymentScope: 'subscription' + existenceScope: 'subscription' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/fb1c8493-542b-48eb-b624-b4c8fea62acd' + ] + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Security/pricings/pricingTier' + equals: 'Standard' + } + { + field: 'type' + equals: 'Microsoft.Security/pricings' + } + ] + } + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + pricingTierVMs: { + value: '[parameters(\'pricingTierVMs\')]' + } + pricingTierSqlServers: { + value: '[parameters(\'pricingTierSqlServers\')]' + } + pricingTierAppServices: { + value: '[parameters(\'pricingTierAppServices\')]' + } + pricingTierStorageAccounts: { + value: '[parameters(\'pricingTierStorageAccounts\')]' + } + pricingTierContainerRegistry: { + value: '[parameters(\'pricingTierContainerRegistry\')]' + } + pricingTierKeyVaults: { + value: '[parameters(\'pricingTierKeyVaults\')]' + } + pricingTierKubernetesService: { + value: '[parameters(\'pricingTierKubernetesService\')]' + } + pricingTierDns: { + value: '[parameters(\'pricingTierDns\')]' + } + pricingTierArm: { + value: '[parameters(\'pricingTierArm\')]' + } + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + pricingTierVMs: { + type: 'string' + metadata: { + description: 'pricingTierVMs' + } + } + pricingTierSqlServers: { + type: 'string' + metadata: { + description: 'pricingTierSqlServers' + } + } + pricingTierAppServices: { + type: 'string' + metadata: { + description: 'pricingTierAppServices' + } + } + pricingTierStorageAccounts: { + type: 'string' + metadata: { + description: 'pricingTierStorageAccounts' + } + } + pricingTierContainerRegistry: { + type: 'string' + metadata: { + description: 'ContainerRegistry' + } + } + pricingTierKeyVaults: { + type: 'string' + metadata: { + description: 'KeyVaults' + } + } + pricingTierKubernetesService: { + type: 'string' + metadata: { + description: 'KubernetesService' + } + } + pricingTierDns: { + type: 'string' + metadata: { + description: 'KubernetesService' + } + } + pricingTierArm: { + type: 'string' + metadata: { + description: 'KubernetesService' + } + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'VirtualMachines' + properties: { + pricingTier: '[parameters(\'pricingTierVMs\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'StorageAccounts' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/VirtualMachines\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierStorageAccounts\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'AppServices' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/StorageAccounts\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierAppServices\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'SqlServers' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/AppServices\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierSqlServers\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'KeyVaults' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/SqlServers\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierKeyVaults\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'KubernetesService' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/KeyVaults\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierKubernetesService\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'ContainerRegistry' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/KubernetesService\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierContainerRegistry\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'Dns' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/ContainerRegistry\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierDns\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'Arm' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/Dns\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierArm\')]' + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-ASC-Standard' + } + { + properties: { + Description: 'This policy denies the creation of child resources on the Automation Account' + DisplayName: 'No child resources in Automation Account' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Automation' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + in: [ + 'Microsoft.Automation/automationAccounts/runbooks' + 'Microsoft.Automation/automationAccounts/variables' + 'Microsoft.Automation/automationAccounts/modules' + 'Microsoft.Automation/automationAccounts/credentials' + 'Microsoft.Automation/automationAccounts/connections' + 'Microsoft.Automation/automationAccount/certificates' + ] + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-AA-child-resources' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Automation to stream to a Log Analytics workspace when any Automation which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Automation to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Automation/automationAccounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Automation/automationAccounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + timeGrain: null + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + logs: [ + { + category: 'JobLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'JobStreams' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DscNodeStatus' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-AA' + } + { + properties: { + displayName: 'RDP access from the Internet should be blocked' + description: 'This policy denies any network security rule that allows RDP access from Internet' + mode: 'All' + metadata: { + version: '1.0.0' + category: 'Network' + } + parameters: { + effect: { + type: 'String' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + } + } + policyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/networkSecurityGroups/securityRules' + } + { + allOf: [ + { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/access' + equals: 'Allow' + } + { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/direction' + equals: 'Inbound' + } + { + anyOf: [ + { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange' + equals: '*' + } + { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange' + equals: '3389' + } + { + value: '[if(and(not(empty(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'))), contains(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'),\'-\')), and(lessOrEquals(int(first(split(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'), \'-\'))),3389),greaterOrEquals(int(last(split(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'), \'-\'))),3389)), \'false\')]' + equals: 'true' + } + { + count: { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]' + where: { + value: '[if(and(not(empty(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')))), contains(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')),\'-\')), and(lessOrEquals(int(first(split(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')), \'-\'))),3389),greaterOrEquals(int(last(split(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')), \'-\'))),3389)) , \'false\')]' + equals: 'true' + } + } + greater: 0 + } + { + not: { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]' + notEquals: '*' + } + } + { + not: { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]' + notEquals: '3389' + } + } + ] + } + { + anyOf: [ + { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefix' + equals: '*' + } + { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefix' + equals: 'Internet' + } + { + not: { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefixes[*]' + notEquals: '*' + } + } + { + not: { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefixes[*]' + notEquals: 'Internet' + } + } + ] + } + ] + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-RDP-From-Internet' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Batch to stream to a Log Analytics workspace when any Batch which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Batch to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Batch/batchAccounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Batch/batchAccounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'ServiceLog' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-Batch' + } + { + properties: { + Description: 'Deploys the diagnostic settings for CDN Endpoint to stream to a Log Analytics workspace when any CDN Endpoint which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for CDN Endpoint to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Cdn/profiles/endpoints' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Cdn/profiles/endpoints/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [] + logs: [ + { + category: 'CoreAnalytics' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'fullName\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-CDNEndpoints' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Cognitive Services to stream to a Log Analytics workspace when any Cognitive Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Cognitive Services to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.CognitiveServices/accounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.CognitiveServices/accounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Audit' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'RequestResponse' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Trace' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-CognitiveServices' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Cosmos DB to stream to a Log Analytics workspace when any Cosmos DB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Cosmos DB to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DocumentDB/databaseAccounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DocumentDB/databaseAccounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'Requests' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'DataPlaneRequests' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'MongoRequests' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'QueryRuntimeStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'PartitionKeyStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'PartitionKeyRUConsumption' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ControlPlaneRequests' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'CassandraRequests' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'GremlinRequests' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-CosmosDB' + } + { + properties: { + Description: 'This policy denies that Cosmos database accounts are created with out public network access is disabled.' + DisplayName: 'Public network access should be disabled for CosmosDB' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.DocumentDB/databaseAccounts' + } + { + field: 'Microsoft.DocumentDB/databaseAccounts/publicNetworkAccess' + notequals: 'Disabled' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-CosmosDB' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Databricks to stream to a Log Analytics workspace when any Databricks which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Databricks to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Databricks/workspaces' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Databricks/workspaces/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + logs: [ + { + category: 'dbfs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'clusters' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'accounts' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'jobs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'notebook' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ssh' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'workspace' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'secrets' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'sqlPermissions' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'instancePools' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-Databricks' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Data Factory to stream to a Log Analytics workspace when any Data Factory which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Data Factory to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DataFactory/factories' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DataFactory/factories/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'ActivityRuns' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'PipelineRuns' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'TriggerRuns' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SSISPackageEventMessages' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SSISPackageExecutableStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SSISPackageEventMessageContext' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SSISPackageExecutionComponentPhases' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SSISPackageExecutionDataStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SSISIntegrationRuntimeLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-DataFactory' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Data Lake Analytics to stream to a Log Analytics workspace when any Data Lake Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Data Lake Analytics to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DataLakeAnalytics/accounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DataLakeAnalytics/accounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Audit' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Requests' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-DLAnalytics' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Azure Data Lake Store to stream to a Log Analytics workspace when anyAzure Data Lake Store which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Azure Data Lake Store to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DataLakeStore/accounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DataLakeStore/accounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Audit' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Requests' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-DataLakeStore' + } + { + properties: { + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Blob Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' + DisplayName: 'Deploy DNS Zone Group for Storage-Blob Private Endpoint' + Mode: 'Indexed' + Parameters: { + privateDnsZoneId: { + type: 'String' + metadata: { + displayName: 'privateDnsZoneId' + strongType: 'Microsoft.Network/privateDnsZones' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/privateEndpoints' + } + { + count: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + where: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + equals: 'blob' + } + } + greaterOrEquals: 1 + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + privateDnsZoneId: { + type: 'string' + } + privateEndpointName: { + type: 'string' + } + location: { + type: 'string' + } + } + resources: [ + { + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + apiVersion: '2020-03-01' + location: '[parameters(\'location\')]' + properties: { + privateDnsZoneConfigs: [ + { + name: 'storageBlob-privateDnsZone' + properties: { + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' + } + } + ] + } + } + ] + } + parameters: { + privateDnsZoneId: { + value: '[parameters(\'privateDnsZoneId\')]' + } + privateEndpointName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-DNSZoneGroup-For-Blob-PrivateEndpoint' + } + { + properties: { + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-File Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' + DisplayName: 'Deploy DNS Zone Group for Storage-File Private Endpoint' + Mode: 'Indexed' + Parameters: { + privateDnsZoneId: { + type: 'String' + metadata: { + displayName: 'privateDnsZoneId' + strongType: 'Microsoft.Network/privateDnsZones' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/privateEndpoints' + } + { + count: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + where: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + equals: 'file' + } + } + greaterOrEquals: 1 + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + privateDnsZoneId: { + type: 'string' + } + privateEndpointName: { + type: 'string' + } + location: { + type: 'string' + } + } + resources: [ + { + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + apiVersion: '2020-03-01' + location: '[parameters(\'location\')]' + properties: { + privateDnsZoneConfigs: [ + { + name: 'storageFile-privateDnsZone' + properties: { + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' + } + } + ] + } + } + ] + } + parameters: { + privateDnsZoneId: { + value: '[parameters(\'privateDnsZoneId\')]' + } + privateEndpointName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-DNSZoneGroup-For-File-PrivateEndpoint' + } + { + properties: { + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Key Vault Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' + DisplayName: 'Deploy DNS Zone Group for Key Vault Private Endpoint' + Mode: 'Indexed' + Parameters: { + privateDnsZoneId: { + type: 'String' + metadata: { + displayName: 'privateDnsZoneId' + strongType: 'Microsoft.Network/privateDnsZones' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/privateEndpoints' + } + { + count: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + where: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + equals: 'vault' + } + } + greaterOrEquals: 1 + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + privateDnsZoneId: { + type: 'string' + } + privateEndpointName: { + type: 'string' + } + location: { + type: 'string' + } + } + resources: [ + { + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + apiVersion: '2020-03-01' + location: '[parameters(\'location\')]' + properties: { + privateDnsZoneConfigs: [ + { + name: 'keyVault-privateDnsZone' + properties: { + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' + } + } + ] + } + } + ] + } + parameters: { + privateDnsZoneId: { + value: '[parameters(\'privateDnsZoneId\')]' + } + privateEndpointName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-DNSZoneGroup-For-KeyVault-PrivateEndpoint' + } + { + properties: { + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Queue Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' + DisplayName: 'Deploy DNS Zone Group for Storage-Queue Private Endpoint' + Mode: 'Indexed' + Parameters: { + privateDnsZoneId: { + type: 'String' + metadata: { + displayName: 'privateDnsZoneId' + strongType: 'Microsoft.Network/privateDnsZones' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/privateEndpoints' + } + { + count: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + where: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + equals: 'queue' + } + } + greaterOrEquals: 1 + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + privateDnsZoneId: { + type: 'string' + } + privateEndpointName: { + type: 'string' + } + location: { + type: 'string' + } + } + resources: [ + { + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + apiVersion: '2020-03-01' + location: '[parameters(\'location\')]' + properties: { + privateDnsZoneConfigs: [ + { + name: 'storageQueue-privateDnsZone' + properties: { + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' + } + } + ] + } + } + ] + } + parameters: { + privateDnsZoneId: { + value: '[parameters(\'privateDnsZoneId\')]' + } + privateEndpointName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-DNSZoneGroup-For-Queue-PrivateEndpoint' + } + { + properties: { + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for SQL Private Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' + DisplayName: 'Deploy DNS Zone Group for SQL Private Endpoint' + Mode: 'Indexed' + Parameters: { + privateDnsZoneId: { + type: 'String' + metadata: { + displayName: 'privateDnsZoneId' + strongType: 'Microsoft.Network/privateDnsZones' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/privateEndpoints' + } + { + count: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + where: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + equals: 'sqlServer' + } + } + greaterOrEquals: 1 + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + privateDnsZoneId: { + type: 'string' + } + privateEndpointName: { + type: 'string' + } + location: { + type: 'string' + } + } + resources: [ + { + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + apiVersion: '2020-03-01' + location: '[parameters(\'location\')]' + properties: { + privateDnsZoneConfigs: [ + { + name: 'sqlServer-privateDnsZone' + properties: { + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' + } + } + ] + } + } + ] + } + parameters: { + privateDnsZoneId: { + value: '[parameters(\'privateDnsZoneId\')]' + } + privateEndpointName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-DNSZoneGroup-For-Sql-PrivateEndpoint' + } + { + properties: { + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Table Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' + DisplayName: 'Deploy DNS Zone Group for Storage-Table Private Endpoint' + Mode: 'Indexed' + Parameters: { + privateDnsZoneId: { + type: 'String' + metadata: { + displayName: 'privateDnsZoneId' + strongType: 'Microsoft.Network/privateDnsZones' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/privateEndpoints' + } + { + count: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + where: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + equals: 'table' + } + } + greaterOrEquals: 1 + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + privateDnsZoneId: { + type: 'string' + } + privateEndpointName: { + type: 'string' + } + location: { + type: 'string' + } + } + resources: [ + { + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + apiVersion: '2020-03-01' + location: '[parameters(\'location\')]' + properties: { + privateDnsZoneConfigs: [ + { + name: 'storageTable-privateDnsZone' + properties: { + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' + } + } + ] + } + } + ] + } + parameters: { + privateDnsZoneId: { + value: '[parameters(\'privateDnsZoneId\')]' + } + privateEndpointName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-DNSZoneGroup-For-Table-PrivateEndpoint' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Event Grid subscriptions to stream to a Log Analytics workspace when any Event Grid subscriptions which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Event Grid subscriptions to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.EventGrid/eventSubscriptions' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.EventGrid/eventSubscriptions/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-EventGridSub' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Event Grid Topic to stream to a Log Analytics workspace when any Event Grid Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Event Grid Topic to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.EventGrid/topics' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.EventGrid/topics/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'DeliveryFailures' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'PublishFailures' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-EventGridTopic' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Event Hubs to stream to a Log Analytics workspace when any Event Hubs which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Event Hubs to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.EventHub/namespaces' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.EventHub/namespaces/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'ArchiveLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'OperationalLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AutoScaleLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'KafkaCoordinatorLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'KafkaUserErrorLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'EventHubVNetConnectionEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'CustomerManagedKeyUserLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-EventHub' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Event Grid System Topic to stream to a Log Analytics workspace when any Event Grid System Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Event Grid System Topic to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.EventGrid/systemTopics' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.EventGrid/systemTopics/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'DeliveryFailures' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-EventGridSystemTopic' + } + { + properties: { + Description: 'Deploys the diagnostic settings for ExpressRoute to stream to a Log Analytics workspace when any ExpressRoute which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for ExpressRoute to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/expressRouteCircuits' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/expressRouteCircuits/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'PeeringRouteLog' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-ExpressRoute' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Firewall to stream to a Log Analytics workspace when any Firewall which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Firewall to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/azureFirewalls' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/azureFirewalls/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'AzureFirewallApplicationRule' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AzureFirewallNetworkRule' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AzureFirewallDnsProxy' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-Firewall' + } + { + properties: { + Description: 'Deploys Azure Firewall Manager policy in subscription where the policy is assigned.' + DisplayName: 'Deploy Azure Firewall Manager policy in the subscription' + Mode: 'Indexed' + Parameters: { + fwpolicy: { + type: 'Object' + metadata: { + displayName: 'fwpolicy' + description: 'Object describing Azure Firewall Policy' + } + defaultValue: {} + } + fwPolicyRegion: { + type: 'String' + metadata: { + displayName: 'fwPolicyRegion' + description: 'Select Azure region for Azure Firewall Policy' + strongType: 'location' + } + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/firewallPolicies' + deploymentScope: 'Subscription' + existenceScope: 'ResourceGroup' + resourceGroupName: '[parameters(\'rgName\')]' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' + ] + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + rgName: { + value: '[parameters(\'rgName\')]' + } + fwPolicy: { + value: '[parameters(\'fwPolicy\')]' + } + fwPolicyRegion: { + value: '[parameters(\'fwPolicyRegion\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + rgName: { + type: 'string' + } + fwPolicy: { + type: 'object' + } + fwPolicyRegion: { + type: 'string' + } + } + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2018-05-01' + name: '[parameters(\'rgName\')]' + location: '[deployment().location]' + properties: {} + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + name: 'fwpolicies' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Network/firewallPolicies' + apiVersion: '2019-09-01' + name: '[parameters(\'fwpolicy\').firewallPolicyName]' + location: '[parameters(\'fwpolicy\').location]' + dependsOn: [] + tags: {} + properties: {} + resources: [ + { + type: 'ruleGroups' + apiVersion: '2019-09-01' + name: '[parameters(\'fwpolicy\').ruleGroups.name]' + dependsOn: [ + '[resourceId(\'Microsoft.Network/firewallPolicies\',parameters(\'fwpolicy\').firewallPolicyName)]' + ] + properties: { + priority: '[parameters(\'fwpolicy\').ruleGroups.properties.priority]' + rules: '[parameters(\'fwpolicy\').ruleGroups.properties.rules]' + } + } + ] + } + ] + outputs: {} + } + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-FirewallPolicy' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Front Door to stream to a Log Analytics workspace when any Front Door which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Front Door to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/frontDoors' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/frontDoors/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'FrontdoorAccessLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'FrontdoorWebApplicationFirewallLog' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-FrontDoor' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Azure Function App to stream to a Log Analytics workspace when any function app which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Azure Function App to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Web/sites' + } + { + value: '[field(\'kind\')]' + notEquals: 'app' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Web/sites/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'FunctionAppLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-Function' + } + { + properties: { + Description: 'Deploys the diagnostic settings for HDInsight to stream to a Log Analytics workspace when any HDInsight which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for HDInsight to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.HDInsight/clusters' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.HDInsight/clusters/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-HDInsight' + } + { + properties: { + Description: 'Deploys the diagnostic settings for IoT Hub to stream to a Log Analytics workspace when any IoT Hub which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for IoT Hub to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Devices/IotHubs' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Devices/IotHubs/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Connections' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DeviceTelemetry' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'C2DCommands' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DeviceIdentityOperations' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'FileUploadOperations' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Routes' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'D2CTwinOperations' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'C2DTwinOperations' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'TwinQueries' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'JobsOperations' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DirectMethods' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DistributedTracing' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Configurations' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DeviceStreams' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-iotHub' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Key Vault to stream to a Log Analytics workspace when any Key Vault which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Key Vault to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.KeyVault/vaults' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + name: 'setByPolicy' + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.KeyVault/vaults/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'AuditEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-KeyVault' + } + { + properties: { + Description: 'This policy denies creation of Key Vaults with IP Firewall exposed to all public endpoints' + DisplayName: 'Public network access should be disabled for KeyVault' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Key Vault' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.KeyVault/vaults' + } + { + field: 'Microsoft.KeyVault/vaults/networkAcls.defaultAction' + notequals: 'Deny' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-KeyVault' + } + { + properties: { + Description: 'This policy enables you to ensure when a Key Vault is created with out soft delete enabled it will be added.' + DisplayName: 'KeyVault SoftDelete should be enabled' + Mode: 'Indexed' + Parameters: {} + metadata: { + version: '1.0.0' + category: 'Key Vault' + } + PolicyRule: { + if: { + anyOf: [ + { + allOf: [ + { + field: 'type' + equals: 'Microsoft.KeyVault/vaults' + } + { + field: 'Microsoft.KeyVault/vaults/enableSoftDelete' + notEquals: false + } + ] + } + ] + } + then: { + effect: 'append' + details: [ + { + field: 'Microsoft.KeyVault/vaults/enableSoftDelete' + value: true + } + ] + } + } + } + name: 'Append-KV-SoftDelete' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Load Balancer to stream to a Log Analytics workspace when any Load Balancer which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Load Balancer to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/loadBalancers' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/loadBalancers/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + timeGrain: null + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + logs: [ + { + category: 'LoadBalancerAlertEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'LoadBalancerProbeHealthStatus' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-LoadBalancer' + } + { + properties: { + Description: 'Deploy the configurations to the Log Analytics in the subscription. This includes a list of solutions like update, automation etc and enables the vminsight counters. ' + DisplayName: 'Deploy the configurations to the Log Analytics in the subscription' + Mode: 'Indexed' + Parameters: { + workspaceName: { + type: 'String' + metadata: { + displayName: 'workspaceName' + description: 'Provide name of existing Log Analytics workspace' + } + } + workspaceRegion: { + type: 'String' + metadata: { + displayName: 'workspaceRegion' + description: 'Select region of existing Log Analytics workspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.OperationalInsights/workspaces' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.OperationalInsights/workspaces' + deploymentScope: 'resourceGroup' + existenceScope: 'Subscription' + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + existenceCondition: { + allOf: [ + { + field: 'name' + like: '[parameters(\'workspaceName\')]' + } + { + field: 'location' + equals: '[parameters(\'workspaceRegion\')]' + } + ] + } + deployment: { + properties: { + mode: 'incremental' + parameters: { + workspaceName: { + value: '[parameters(\'workspaceName\')]' + } + workspaceRegion: { + value: '[parameters(\'workspaceRegion\')]' + } + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + workspaceName: { + type: 'string' + } + workspaceRegion: { + type: 'string' + } + } + variables: { + vmInsightsPerfCounters: { + windowsArray: [ + { + armName: 'counter1' + objectName: 'LogicalDisk' + counterName: '% Free Space' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter2' + objectName: 'LogicalDisk' + counterName: 'Avg. Disk sec/Read' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter3' + objectName: 'LogicalDisk' + counterName: 'Avg. Disk sec/Transfer' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter4' + objectName: 'LogicalDisk' + counterName: 'Avg. Disk sec/Write' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter5' + objectName: 'LogicalDisk' + counterName: 'Disk Read Bytes/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter6' + objectName: 'LogicalDisk' + counterName: 'Disk Reads/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter7' + objectName: 'LogicalDisk' + counterName: 'Disk Transfers/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter8' + objectName: 'LogicalDisk' + counterName: 'Disk Write Bytes/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter9' + objectName: 'LogicalDisk' + counterName: 'Disk Writes/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter10' + objectName: 'LogicalDisk' + counterName: 'Free Megabytes' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter11' + objectName: 'Memory' + counterName: 'Available MBytes' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter12' + objectName: 'Network Adapter' + counterName: 'Bytes Received/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter13' + objectName: 'Network Adapter' + counterName: 'Bytes Sent/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter14' + objectName: 'Processor' + counterName: '% Processor Time' + instanceName: '*' + intervalSeconds: 10 + } + ] + linuxDiskArray: [ + { + counterName: '% Used Inodes' + } + { + counterName: 'Free Megabytes' + } + { + counterName: '% Used Space' + } + { + counterName: 'Disk Transfers/sec' + } + { + counterName: 'Disk Reads/sec' + } + { + counterName: 'Disk writes/sec' + } + ] + linuxDiskObject: { + armResourceName: 'Disk' + objectName: 'Logical Disk' + instanceName: '*' + intervalSeconds: 10 + } + linuxMemoryArray: [ + { + counterName: 'Available MBytes Memory' + } + ] + linuxMemoryObject: { + armResourceName: 'Memory' + objectName: 'Memory' + instanceName: '*' + intervalSeconds: 10 + } + linuxNetworkArray: [ + { + counterName: 'Total Bytes Received' + } + { + counterName: 'Total Bytes Transmitted' + } + ] + linuxNetworkObject: { + armResourceName: 'Network' + objectName: 'Network' + instanceName: '*' + intervalSeconds: 10 + } + linuxCpuArray: [ + { + counterName: '% Processor Time' + } + ] + linuxCpuObject: { + armResourceName: 'Processor' + objectName: 'Processor' + instanceName: '*' + intervalSeconds: 10 + } + } + batch1: { + solutions: [ + { + name: '[concat(\'Security\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'Security' + } + { + name: '[concat(\'AgentHealthAssessment\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'AgentHealthAssessment' + } + { + name: '[concat(\'ChangeTracking\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'ChangeTracking' + } + { + name: '[concat(\'Updates\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'Updates' + } + { + name: '[concat(\'AzureActivity\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'AzureActivity' + } + { + name: '[concat(\'AzureAutomation\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'AzureAutomation' + } + { + name: '[concat(\'ADAssessment\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'ADAssessment' + } + { + name: '[concat(\'SQLAssessment\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'SQLAssessment' + } + { + name: '[concat(\'VMInsights\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'VMInsights' + } + { + name: '[concat(\'ServiceMap\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'ServiceMap' + } + { + name: '[concat(\'SecurityInsights\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'SecurityInsights' + } + ] + } + } + resources: [ + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationalInsights/workspaces/datasources' + name: '[concat(parameters(\'workspaceName\'), \'/LinuxPerfCollection\')]' + kind: 'LinuxPerformanceCollection' + properties: { + state: 'Enabled' + } + } + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationalInsights/workspaces/dataSources' + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxDiskObject.armResourceName)]' + kind: 'LinuxPerformanceObject' + properties: { + performanceCounters: '[variables(\'vmInsightsPerfCounters\').linuxDiskArray]' + objectName: '[variables(\'vmInsightsPerfCounters\').linuxDiskObject.objectName]' + instanceName: '[variables(\'vmInsightsPerfCounters\').linuxDiskObject.instanceName]' + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').linuxDiskObject.intervalSeconds]' + } + } + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationalInsights/workspaces/dataSources' + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxMemoryObject.armResourceName)]' + kind: 'LinuxPerformanceObject' + properties: { + performanceCounters: '[variables(\'vmInsightsPerfCounters\').linuxMemoryArray]' + objectName: '[variables(\'vmInsightsPerfCounters\').linuxMemoryObject.objectName]' + instanceName: '[variables(\'vmInsightsPerfCounters\').linuxMemoryObject.instanceName]' + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').linuxMemoryObject.intervalSeconds]' + } + } + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationalInsights/workspaces/dataSources' + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxCpuObject.armResourceName)]' + kind: 'LinuxPerformanceObject' + properties: { + performanceCounters: '[variables(\'vmInsightsPerfCounters\').linuxCpuArray]' + objectName: '[variables(\'vmInsightsPerfCounters\').linuxCpuObject.objectName]' + instanceName: '[variables(\'vmInsightsPerfCounters\').linuxCpuObject.instanceName]' + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').linuxCpuObject.intervalSeconds]' + } + } + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationalInsights/workspaces/dataSources' + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxNetworkObject.armResourceName)]' + kind: 'LinuxPerformanceObject' + properties: { + performanceCounters: '[variables(\'vmInsightsPerfCounters\').linuxNetworkArray]' + objectName: '[variables(\'vmInsightsPerfCounters\').linuxNetworkObject.objectName]' + instanceName: '[variables(\'vmInsightsPerfCounters\').linuxNetworkObject.instanceName]' + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').linuxNetworkObject.intervalSeconds]' + } + } + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationalInsights/workspaces/dataSources' + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].armName)]' + kind: 'WindowsPerformanceCounter' + copy: { + name: 'counterCopy' + count: '[length(variables(\'vmInsightsPerfCounters\').windowsArray)]' + } + properties: { + objectName: '[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].objectName]' + instanceName: '[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].instanceName]' + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].intervalSeconds]' + counterName: '[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].counterName]' + } + } + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationsManagement/solutions' + name: '[concat(variables(\'batch1\').solutions[copyIndex()].Name)]' + location: '[parameters(\'workspaceRegion\')]' + copy: { + name: 'solutionCopy' + count: '[length(variables(\'batch1\').solutions)]' + } + properties: { + workspaceResourceId: '[resourceId(\'Microsoft.OperationalInsights/workspaces/\', parameters(\'workspaceName\'))]' + } + plan: { + name: '[variables(\'batch1\').solutions[copyIndex()].name]' + product: '[concat(\'OMSGallery/\', variables(\'batch1\').solutions[copyIndex()].marketplaceName)]' + promotionCode: '' + publisher: 'Microsoft' + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-LA-Config' + } + { + properties: { + Description: 'Deploys Log Analytics and Automation account to the subscription where the policy is assigned.' + DisplayName: 'Deploy the Log Analytics in the subscription' + Mode: 'Indexed' + Parameters: { + workspaceName: { + type: 'String' + metadata: { + displayName: 'workspaceName' + description: 'Provide name for log analytics workspace' + } + } + automationAccountName: { + type: 'String' + metadata: { + displayName: 'automationAccountName' + description: 'Provide name for automation account' + } + } + workspaceRegion: { + type: 'String' + metadata: { + displayName: 'workspaceRegion' + description: 'Select Azure region for Log Analytics' + } + } + automationRegion: { + type: 'String' + metadata: { + displayName: 'automationRegion' + description: 'Select Azure region for Automation account' + } + } + retentionInDays: { + type: 'string' + defaultValue: '30' + metadata: { + displayName: 'Data retention' + description: 'Select data retention (days) for Log Analytics.' + } + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.OperationalInsights/workspaces' + deploymentScope: 'Subscription' + existenceScope: 'Subscription' + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + existenceCondition: { + allOf: [ + { + field: 'name' + like: '[parameters(\'workspaceName\')]' + } + ] + } + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + rgName: { + value: '[parameters(\'rgName\')]' + } + retentionInDays: { + value: '[parameters(\'retentionInDays\')]' + } + workspaceName: { + value: '[parameters(\'workspaceName\')]' + } + workspaceRegion: { + value: '[parameters(\'workspaceRegion\')]' + } + automationAccountName: { + value: '[parameters(\'automationAccountName\')]' + } + automationRegion: { + value: '[parameters(\'automationRegion\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + rgName: { + type: 'string' + } + workspaceName: { + type: 'string' + } + workspaceRegion: { + type: 'string' + } + automationAccountName: { + type: 'string' + } + automationRegion: { + type: 'string' + } + retentionInDays: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2018-05-01' + name: '[parameters(\'rgName\')]' + location: '[deployment().location]' + properties: {} + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + name: 'log-analytics' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + apiversion: '2015-10-31' + location: '[parameters(\'AutomationRegion\')]' + name: '[parameters(\'AutomationAccountName\')]' + type: 'Microsoft.Automation/automationAccounts' + comments: 'Automation account for ' + properties: { + sku: { + name: 'OMS' + } + } + } + { + apiVersion: '2017-03-15-preview' + location: '[parameters(\'workspaceRegion\')]' + name: '[parameters(\'workspaceName\')]' + type: 'Microsoft.OperationalInsights/workspaces' + properties: { + sku: { + name: 'pernode' + } + enableLogAccessUsingOnlyResourcePermissions: true + retentionInDays: '[int(parameters(\'retentionInDays\'))]' + } + resources: [ + { + name: 'Automation' + type: 'linkedServices' + apiVersion: '2015-11-01-preview' + dependsOn: [ + '[resourceId(\'Microsoft.OperationalInsights/workspaces/\', parameters(\'workspaceName\'))]' + '[resourceId(\'Microsoft.Automation/automationAccounts/\', parameters(\'AutomationAccountName\'))]' + ] + properties: { + resourceId: '[concat(subscription().id, \'/resourceGroups/\', parameters(\'rgName\'), \'/providers/Microsoft.Automation/automationAccounts/\', parameters(\'AutomationAccountName\'))]' + } + } + ] + } + ] + outputs: {} + } + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-Log-Analytics' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Logic Apps integration service environment to stream to a Log Analytics workspace when any Logic Apps integration service environment which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Logic Apps integration service environment to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Logic/integrationAccounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Logic/integrationAccounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [] + logs: [ + { + category: 'IntegrationAccountTrackingEvents' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-LogicAppsISE' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Logic Apps Workflow runtimeto stream to a Log Analytics workspace when any Logic Apps Workflow runtime which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Logic Apps Workflow runtime to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Logic/workflows' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Logic/workflows/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'WorkflowRuntime' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-LogicAppsWF' + } + { + properties: { + Description: 'Deploys the diagnostic settings for MariaDB to stream to a Log Analytics workspace when any MariaDB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for MariaDB to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DBforMariaDB/servers' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DBforMariaDB/servers/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'MySqlSlowLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'MySqlAuditLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-MariaDB' + } + { + properties: { + Description: 'This policy denies the creation of Maria DB accounts with exposed public endpoints' + DisplayName: 'Public network access should be disabled for MariaDB' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.DBforMariaDB/servers' + } + { + field: 'Microsoft.DBforMariaDB/servers/publicNetworkAccess' + notequals: 'Disabled' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-MariaDB' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Machine Learning workspace to stream to a Log Analytics workspace when any Machine Learning workspace which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Machine Learning workspace to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.MachineLearningServices/workspaces' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.MachineLearningServices/workspaces/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'Run' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + { + category: 'Model' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: true + } + } + { + category: 'Quota' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + { + category: 'Resource' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'AmlComputeClusterEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AmlComputeClusterNodeEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AmlComputeJobEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AmlComputeCpuGpuUtilization' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AmlRunStatusChangedEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-MlWorkspace' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Database for MySQL to stream to a Log Analytics workspace when any Database for MySQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Database for MySQL to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DBforMySQL/servers' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DBforMySQL/servers/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'MySqlSlowLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'MySqlAuditLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-MySQL' + } + { + properties: { + Description: 'This policy denies creation of MySql DB accounts with exposed public endpoints' + DisplayName: 'Public network access should be disabled for MySQL' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.DBforMySQL/servers' + } + { + field: 'Microsoft.DBforMySQL/servers/publicNetworkAccess' + notequals: 'Disabled' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-MySQL' + } + { + properties: { + Description: 'Deploys an Azure DDoS Protection Standard plan' + DisplayName: 'Deploy an Azure DDoS Protection Standard plan' + Mode: 'Indexed' + Parameters: { + ddosName: { + type: 'String' + metadata: { + displayName: 'ddosName' + description: 'Name of the Virtual WAN' + } + } + ddosRegion: { + type: 'String' + metadata: { + displayName: 'ddosRegion' + description: 'Select Azure region for Virtual WAN' + strongType: 'location' + } + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/ddosProtectionPlans' + deploymentScope: 'Subscription' + existenceScope: 'ResourceGroup' + resourceGroupName: '[parameters(\'rgName\')]' + name: '[parameters(\'ddosName\')]' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + rgName: { + value: '[parameters(\'rgName\')]' + } + ddosname: { + value: '[parameters(\'ddosname\')]' + } + ddosregion: { + value: '[parameters(\'ddosRegion\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + rgName: { + type: 'string' + } + ddosname: { + type: 'string' + } + ddosRegion: { + type: 'string' + } + } + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2018-05-01' + name: '[parameters(\'rgName\')]' + location: '[deployment().location]' + properties: {} + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + name: 'ddosprotection' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: {} + resources: [ + { + type: 'Microsoft.Network/ddosProtectionPlans' + apiVersion: '2019-12-01' + name: '[parameters(\'ddosName\')]' + location: '[parameters(\'ddosRegion\')]' + properties: {} + } + ] + outputs: {} + } + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-DDoSProtection' + } + { + properties: { + Description: 'This policy denies the creation of vNet Peerings under the assigned scope.' + DisplayName: 'Deny vNet peering ' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-VNet-Peering' + } + { + properties: { + Description: 'This policy denies the creation of a private DNS in the current scope, used in combination with policies that create centralized private DNS in connectivity subscription' + DisplayName: 'Deny the creation of private DNS' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/privateDnsZones' + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-Private-DNS-Zones' + } + { + properties: { + Description: 'This policy denies creation of Public IPs under the assigned scope.' + DisplayName: 'Deny the creation of public IP' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/publicIPAddresses' + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicIP' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Network Interfaces to stream to a Log Analytics workspace when any Network Interfaces which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Network Interfaces to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/networkInterfaces' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/networkInterfaces/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + timeGrain: null + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-NIC' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Public IP addresses to stream to a Log Analytics workspace when any Public IP addresses which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Public IP addresses to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/publicIPAddresses' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/publicIPAddresses/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + timeGrain: null + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + logs: [ + { + category: 'DDoSProtectionNotifications' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DDoSMitigationFlowLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DDoSMitigationReports' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-PublicIP' + } + { + properties: { + Description: 'Deploys NSG flow logs and traffic analytics to a storageaccountid with a specfied retention period.' + DisplayName: 'Deploys NSG flow logs and traffic analytics' + Mode: 'Indexed' + Parameters: { + retention: { + type: 'Integer' + metadata: { + displayName: 'Retention' + } + defaultValue: 5 + } + storageAccountResourceId: { + type: 'String' + metadata: { + displayName: 'Storage Account Resource Id' + strongType: 'Microsoft.Storage/storageAccounts' + } + } + trafficAnalyticsInterval: { + type: 'Integer' + metadata: { + displayName: 'Traffic Analytics processing interval mins (10/60)' + } + defaultValue: 60 + } + flowAnalyticsEnabled: { + type: 'Boolean' + metadata: { + displayName: 'Enable Traffic Analytics' + } + defaultValue: false + } + logAnalytics: { + type: 'String' + metadata: { + strongType: 'omsWorkspace' + displayName: 'Resource ID of Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + } + defaultValue: '' + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/networkSecurityGroups' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/networkWatchers/flowLogs' + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + resourceGroupName: 'NetworkWatcherRG' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Network/networkWatchers/flowLogs/enabled' + equals: 'true' + } + { + field: 'Microsoft.Network/networkWatchers/flowLogs/flowAnalyticsConfiguration.networkWatcherFlowAnalyticsConfiguration.enabled' + equals: '[parameters(\'flowAnalyticsEnabled\')]' + } + ] + } + deployment: { + properties: { + mode: 'incremental' + parameters: { + networkSecurityGroupName: { + value: '[field(\'name\')]' + } + resourceGroupName: { + value: '[resourceGroup().name]' + } + location: { + value: '[field(\'location\')]' + } + storageAccountResourceId: { + value: '[parameters(\'storageAccountResourceId\')]' + } + retention: { + value: '[parameters(\'retention\')]' + } + flowAnalyticsEnabled: { + value: '[parameters(\'flowAnalyticsEnabled\')]' + } + trafficAnalyticsInterval: { + value: '[parameters(\'trafficAnalyticsInterval\')]' + } + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + networkSecurityGroupName: { + type: 'string' + } + resourceGroupName: { + type: 'string' + } + location: { + type: 'string' + } + storageAccountResourceId: { + type: 'string' + } + retention: { + type: 'int' + } + flowAnalyticsEnabled: { + type: 'bool' + } + trafficAnalyticsInterval: { + type: 'int' + } + logAnalytics: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/networkWatchers/flowLogs' + apiVersion: '2020-05-01' + name: '[take(concat(\'NetworkWatcher_\', toLower(parameters(\'location\')), \'/\', parameters(\'networkSecurityGroupName\'), \'-\', parameters(\'resourceGroupName\'), \'-flowlog\' ), 80)]' + location: '[parameters(\'location\')]' + properties: { + targetResourceId: '[resourceId(parameters(\'resourceGroupName\'), \'Microsoft.Network/networkSecurityGroups\', parameters(\'networkSecurityGroupName\'))]' + storageId: '[parameters(\'storageAccountResourceId\')]' + enabled: true + retentionPolicy: { + enabled: true + days: '[parameters(\'retention\')]' + } + format: { + type: 'JSON' + version: 2 + } + flowAnalyticsConfiguration: { + networkWatcherFlowAnalyticsConfiguration: { + enabled: '[bool(parameters(\'flowAnalyticsEnabled\'))]' + trafficAnalyticsInterval: '[parameters(\'trafficAnalyticsInterval\')]' + workspaceId: '[if(not(empty(parameters(\'logAnalytics\'))), reference(parameters(\'logAnalytics\'), \'2020-03-01-preview\', \'Full\').properties.customerId, json(\'null\')) ]' + workspaceRegion: '[if(not(empty(parameters(\'logAnalytics\'))), reference(parameters(\'logAnalytics\'), \'2020-03-01-preview\', \'Full\').location, json(\'null\')) ]' + workspaceResourceId: '[if(not(empty(parameters(\'logAnalytics\'))), parameters(\'logAnalytics\'), json(\'null\'))]' + } + } + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-Nsg-FlowLogs' + } + { + properties: { + Description: 'This policy denies the creation of a subsnet with out an Network Security Group. NSG help to protect traffic across subnet-level.' + DisplayName: 'Subnets should have a Network Security Group ' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/virtualNetworks/subnets' + } + { + field: 'Microsoft.Network/virtualNetworks/subnets/networkSecurityGroup.id' + exists: 'false' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-Subnet-Without-Nsg' + } + { + properties: { + displayName: 'Subnets should have a User Defined Route' + policyType: 'Custom' + mode: 'Indexed' + description: 'This policy denies the creation of a subsnet with out a User Defined Route.' + metadata: { + version: '1.0.0' + category: 'Network' + } + parameters: { + effect: { + type: 'String' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + } + } + policyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/virtualNetworks/subnets' + } + { + field: 'Microsoft.Network/virtualNetworks/subnets/routeTable.id' + exists: 'false' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-Subnet-Without-Udr' + } + { + Properties: { + Description: 'This policy denies the creation of vNet Peerings outside of the same subscriptions under the assigned scope.' + DisplayName: 'Deny vNet peering cross subscription.' + Mode: 'Indexed' + metadata: { + version: '1.0.0.0' + category: 'Network' + } + Parameters: { + effect: { + type: 'String' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + } + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' + } + { + field: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings/remoteVirtualNetwork.id' + notcontains: '[subscription().id]' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-VNET-Peer-Cross-Sub' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Network Security Groups to stream to a Log Analytics workspace when any Network Security Groups which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Network Security Groups to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/networkSecurityGroups' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/networkSecurityGroups/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [] + logs: [ + { + category: 'NetworkSecurityGroupEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'NetworkSecurityGroupRuleCounter' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-NetworkSecurityGroups' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Database for PostgreSQL to stream to a Log Analytics workspace when any Database for PostgreSQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Database for PostgreSQL to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DBforPostgreSQL/servers' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DBforPostgreSQL/servers/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'PostgreSQLLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'QueryStoreRuntimeStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'QueryStoreWaitStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-PostgreSQL' + } + { + properties: { + Description: 'This policy denies creation of Postgre SQL DB accounts with exposed public endpoints' + DisplayName: 'Public network access should be disabled for PostgreSql' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.DBforPostgreSQL/servers' + } + { + field: 'Microsoft.DBforPostgreSQL/servers/publicNetworkAccess' + notequals: 'Disabled' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-PostgreSql' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Power BI Embedded to stream to a Log Analytics workspace when any Power BI Embedded which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Power BI Embedded to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.PowerBIDedicated/capacities' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.PowerBIDedicated/capacities/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Engine' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-PowerBIEmbedded' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Recovery Services vaults to stream to a Log Analytics workspace when any Recovery Services vaults which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Recovery Services vaults to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.RecoveryServices/vaults' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allof: [ + { + count: { + field: 'Microsoft.Insights/diagnosticSettings/logs[*]' + where: { + allof: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs[*].Category' + in: [ + 'CoreAzureBackup' + 'AddonAzureBackupJobs' + 'AddonAzureBackupAlerts' + 'AddonAzureBackupPolicy' + 'AddonAzureBackupStorage' + 'AddonAzureBackupProtectedInstance' + 'AzureBackupReport' + ] + } + { + field: 'Microsoft.Insights/diagnosticSettings/logs[*].Enabled' + equals: 'True' + } + ] + } + } + Equals: 7 + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + { + field: 'Microsoft.Insights/diagnosticSettings/logAnalyticsDestinationType' + equals: 'Dedicated' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.RecoveryServices/vaults/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + logAnalyticsDestinationType: 'Dedicated' + metrics: [] + logs: [ + { + category: 'CoreAzureBackup' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AddonAzureBackupAlerts' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AddonAzureBackupJobs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AddonAzureBackupPolicy' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AddonAzureBackupProtectedInstance' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AddonAzureBackupStorage' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AzureBackupReport' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-RecoveryVault' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Redis Cache to stream to a Log Analytics workspace when any Redis Cache which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Redis Cache to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Cache/redis' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Cache/redis/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-RedisCache' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Relay to stream to a Log Analytics workspace when any Relay which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Relay to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Relay/namespaces' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Relay/namespaces/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'HybridConnectionsEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-Relay' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Search Services to stream to a Log Analytics workspace when any Search Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Search Services to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Search/searchServices' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Search/searchServices/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'OperationLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-SearchServices' + } + { + properties: { + Description: 'Deploys the diagnostic settings for ServiceBus to stream to a Log Analytics workspace when any ServiceBus which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Service Bus namespaces to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.ServiceBus/namespaces' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.ServiceBus/namespaces/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'OperationalLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-ServiceBus' + } + { + properties: { + Description: 'Deploys the diagnostic settings for SignalR to stream to a Log Analytics workspace when any SignalR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for SignalR to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.SignalRService/SignalR' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.SignalRService/SignalR/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'AllLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-SignalR' + } + { + properties: { + Description: 'Deploy auditing settings to SQL Database when it not exist in the deployment' + DisplayName: 'Deploy SQL database auditing settings' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/servers/databases' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Sql/servers/databases/auditingSettings' + name: 'default' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Sql/servers/databases/auditingSettings/state' + equals: 'enabled' + } + { + field: 'Microsoft.Sql/servers/databases/auditingSettings/isAzureMonitorTargetEnabled' + equals: 'true' + } + ] + } + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + location: { + type: 'string' + } + sqlServerName: { + type: 'string' + } + sqlServerDataBaseName: { + type: 'string' + } + } + variables: {} + resources: [ + { + name: '[concat( parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/default\')]' + type: 'Microsoft.Sql/servers/databases/auditingSettings' + apiVersion: '2017-03-01-preview' + properties: { + state: 'enabled' + auditActionsAndGroups: [ + 'BATCH_COMPLETED_GROUP' + 'DATABASE_OBJECT_CHANGE_GROUP' + 'SCHEMA_OBJECT_CHANGE_GROUP' + 'BACKUP_RESTORE_GROUP' + 'APPLICATION_ROLE_CHANGE_PASSWORD_GROUP' + 'DATABASE_PRINCIPAL_CHANGE_GROUP' + 'DATABASE_PRINCIPAL_IMPERSONATION_GROUP' + 'DATABASE_ROLE_MEMBER_CHANGE_GROUP' + 'USER_CHANGE_PASSWORD_GROUP' + 'DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP' + 'DATABASE_OBJECT_PERMISSION_CHANGE_GROUP' + 'DATABASE_PERMISSION_CHANGE_GROUP' + 'SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP' + 'SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP' + 'FAILED_DATABASE_AUTHENTICATION_GROUP' + ] + isAzureMonitorTargetEnabled: true + } + } + ] + outputs: {} + } + parameters: { + location: { + value: '[field(\'location\')]' + } + sqlServerName: { + value: '[first(split(field(\'fullname\'),\'/\'))]' + } + sqlServerDataBaseName: { + value: '[field(\'name\')]' + } + } + } + } + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3' + ] + } + } + } + } + name: 'Deploy-Sql-AuditingSettings' + } + { + properties: { + Description: 'Deploy the Transparent Data Encryption when it is not enabled in the deployment' + DisplayName: 'Deploy SQL Database Transparent Data Encryption ' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/servers/databases' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Sql/servers/databases/transparentDataEncryption' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Sql/transparentDataEncryption.status' + equals: 'Enabled' + } + ] + } + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + location: { + type: 'string' + } + sqlServerName: { + type: 'string' + } + sqlServerDataBaseName: { + type: 'string' + } + } + variables: {} + resources: [ + { + name: '[concat( parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/current\')]' + type: 'Microsoft.Sql/servers/databases/transparentDataEncryption' + apiVersion: '2014-04-01' + properties: { + status: 'Enabled' + } + } + ] + outputs: {} + } + parameters: { + location: { + value: '[field(\'location\')]' + } + sqlServerName: { + value: '[first(split(field(\'fullname\'),\'/\'))]' + } + sqlServerDataBaseName: { + value: '[field(\'name\')]' + } + } + } + } + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3' + ] + } + } + } + } + name: 'Deploy-Sql-Tde' + } + { + properties: { + Description: 'Deploy the security Alert Policies configuration with email admin accounts when it not exist in current configuration' + DisplayName: 'Deploy SQL Database security Alert Policies configuration with email admin accounts' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/servers/databases' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Sql/servers/databases/securityAlertPolicies' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Sql/servers/databases/securityAlertPolicies/state' + equals: 'Enabled' + } + ] + } + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + location: { + type: 'string' + } + sqlServerName: { + type: 'string' + } + sqlServerDataBaseName: { + type: 'string' + } + } + variables: {} + resources: [ + { + name: '[concat(parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/default\')]' + type: 'Microsoft.Sql/servers/databases/securityAlertPolicies' + apiVersion: '2018-06-01-preview' + properties: { + state: 'Enabled' + disabledAlerts: [ + '' + ] + emailAddresses: [ + 'admin@contoso.com' + ] + emailAccountAdmins: true + storageEndpoint: null + storageAccountAccessKey: '' + retentionDays: 0 + } + } + ] + outputs: {} + } + parameters: { + location: { + value: '[field(\'location\')]' + } + sqlServerName: { + value: '[first(split(field(\'fullname\'),\'/\'))]' + } + sqlServerDataBaseName: { + value: '[field(\'name\')]' + } + } + } + } + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3' + ] + } + } + } + } + name: 'Deploy-Sql-SecurityAlertPolicies' + } + { + properties: { + Description: 'Deploy SQL Database vulnerability Assessments when it not exist in the deployment. To the specific storage account in the parameters' + DisplayName: 'Deploy SQL Database vulnerability Assessments' + Mode: 'Indexed' + Parameters: { + vulnerabilityAssessmentsEmail: { + type: 'String' + metadata: { + description: 'The email address to send alerts' + displayName: 'The email address to send alerts' + } + } + vulnerabilityAssessmentsStorageID: { + type: 'String' + metadata: { + description: 'The storage account to store assessments' + displayName: 'The storage account to store assessments' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/servers/databases' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Sql/servers/databases/vulnerabilityAssessments' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Sql/servers/databases/vulnerabilityAssessments/recurringScans.emails' + equals: '[parameters(\'vulnerabilityAssessmentsEmail\')]' + } + { + field: 'Microsoft.Sql/servers/databases/vulnerabilityAssessments/recurringScans.isEnabled' + equals: true + } + ] + } + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + location: { + type: 'string' + } + sqlServerName: { + type: 'string' + } + sqlServerDataBaseName: { + type: 'string' + } + vulnerabilityAssessmentsEmail: { + type: 'string' + } + vulnerabilityAssessmentsStorageID: { + type: 'string' + } + } + variables: {} + resources: [ + { + name: '[concat(parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/default\')]' + type: 'Microsoft.Sql/servers/databases/vulnerabilityAssessments' + apiVersion: '2017-03-01-preview' + properties: { + storageContainerPath: '[concat(\'https://\', last( split(parameters(\'vulnerabilityAssessmentsStorageID\') , \'/\') ) , \'.blob.core.windows.net/vulneraabilitylogs\')]' + storageAccountAccessKey: '[listkeys(parameters(\'vulnerabilityAssessmentsStorageID\'), providers(\'Microsoft.Storage\', \'storageAccounts\').apiVersions[0]).keys[0].value]' + recurringScans: { + isEnabled: true + emailSubscriptionAdmins: false + emails: [ + '[parameters(\'vulnerabilityAssessmentsEmail\')]' + ] + } + } + } + ] + outputs: {} + } + parameters: { + location: { + value: '[field(\'location\')]' + } + sqlServerName: { + value: '[first(split(field(\'fullname\'),\'/\'))]' + } + sqlServerDataBaseName: { + value: '[field(\'name\')]' + } + vulnerabilityAssessmentsEmail: { + value: '[parameters(\'vulnerabilityAssessmentsEmail\')]' + } + vulnerabilityAssessmentsStorageID: { + value: '[parameters(\'vulnerabilityAssessmentsStorageID\')]' + } + } + } + } + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3' + '/providers/Microsoft.Authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + ] + } + } + } + } + name: 'Deploy-Sql-vulnerabilityAssessments' + } + { + properties: { + Description: 'Deploys the diagnostic settings for SQL Databases to stream to a Log Analytics workspace when any SQL Databases which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for SQL Databases to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/servers/databases' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Sql/servers/databases/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'SQLInsights' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AutomaticTuning' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DevOpsOperationsAudit' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'QueryStoreRuntimeStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'QueryStoreWaitStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Errors' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DatabaseWaitStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Timeouts' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Blocks' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Deadlocks' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SQLSecurityAuditEvents' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'fullName\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-SQLDBs' + } + { + properties: { + Description: 'Deploys the diagnostic settings for SQL Elastic Pools to stream to a Log Analytics workspace when any SQL Elastic Pools which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for SQL Elastic Pools to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/servers/elasticPools' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Sql/servers/elasticPools/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'fullName\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-SQLElasticPools' + } + { + properties: { + Description: 'Deploys the diagnostic settings for SQL Managed Instances to stream to a Log Analytics workspace when any SQL Managed Instances which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for SQL Managed Instances to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/managedInstances' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Sql/managedInstances/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + logs: [ + { + category: 'ResourceUsageStats' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SQLSecurityAuditEvents' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DevOpsOperationsAudit' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-SQLMI' + } + { + properties: { + Description: 'This policy denies creation of Sql servers with exposed public endpoints' + DisplayName: 'Public network access on Azure SQL Database should be disabled' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Sql/servers' + } + { + field: 'Microsoft.Sql/servers/publicNetworkAccess' + notequals: 'Disabled' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-Sql' + } + { + properties: { + Description: 'This policy denies creation of storage accounts with IP Firewall exposed to all public endpoints' + DisplayName: 'Public network access onStorage accounts should be disabled' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Storage' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Storage/storageAccounts' + } + { + field: 'Microsoft.Storage/storageAccounts/networkAcls.defaultAction' + notequals: 'Deny' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-Storage' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Stream Analytics to stream to a Log Analytics workspace when any Stream Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Stream Analytics to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.StreamAnalytics/streamingjobs' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.StreamAnalytics/streamingjobs/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Execution' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Authoring' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-StreamAnalytics' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Time Series Insights to stream to a Log Analytics workspace when any Time Series Insights which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Time Series Insights to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.TimeSeriesInsights/environments' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.TimeSeriesInsights/environments/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Ingress' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Management' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-TimeSeriesInsights' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Traffic Manager to stream to a Log Analytics workspace when any Traffic Manager which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Traffic Manager to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/trafficManagerProfiles' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/trafficManagerProfiles/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'ProbeHealthStatusEvents' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-TrafficManager' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Virtual Machines to stream to a Log Analytics workspace when any Virtual Machines which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Virtual Machines to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Compute/virtualMachines' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Compute/virtualMachines/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-VM' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Virtual Network to stream to a Log Analytics workspace when any Virtual Network which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Virtual Network to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/virtualNetworks' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualNetworks/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + logs: [ + { + category: 'VMProtectionAlerts' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-VirtualNetwork' + } + { + properties: { + Description: 'Deploys Virtual Network to be used as hub virtual network in desired region in the subscription where this policy is assigned.' + DisplayName: 'Deploy Virtual Network to be used as hub virtual network in desired region' + Mode: 'Indexed' + Parameters: { + hubName: { + type: 'String' + metadata: { + displayName: 'hubName' + description: 'Name of the Hub' + } + } + HUB: { + type: 'Object' + metadata: { + displayName: 'HUB' + description: 'Object describing HUB' + } + } + vpngw: { + type: 'Object' + metadata: { + displayName: 'vpngw' + description: 'Object describing VPN gateway' + } + defaultValue: {} + } + ergw: { + type: 'Object' + metadata: { + displayName: 'ergw' + description: 'Object describing ExpressRoute gateway' + } + defaultValue: {} + } + azfw: { + type: 'Object' + metadata: { + displayName: 'ergw' + description: 'Object describing ExpressRoute gateway' + } + defaultValue: {} + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/virtualNetworks' + name: '[parameters(\'hubName\')]' + deploymentScope: 'Subscription' + existenceScope: 'ResourceGroup' + ResourceGroupName: '[parameters(\'rgName\')]' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + rgName: { + value: '[parameters(\'rgName\')]' + } + hubName: { + value: '[parameters(\'hubName\')]' + } + HUB: { + value: '[parameters(\'HUB\')]' + } + vpngw: { + value: '[parameters(\'vpngw\')]' + } + ergw: { + value: '[parameters(\'ergw\')]' + } + azfw: { + value: '[parameters(\'azfw\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + hubName: { + type: 'string' + metadata: { + description: 'Name of the HUB' + } + } + HUB: { + type: 'object' + metadata: { + description: 'Object describing HUB' + } + } + vpngw: { + type: 'object' + defaultValue: {} + metadata: { + description: 'Object describing VPN gateway' + } + } + ergw: { + type: 'object' + defaultValue: {} + metadata: { + description: 'Object describing ExpressRoute gateway' + } + } + azfw: { + type: 'object' + defaultValue: {} + metadata: { + description: 'Object describing the Azure Firewall' + } + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2020-06-01' + name: '[parameters(\'rgName\')]' + location: '[deployment().location]' + properties: {} + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https: //schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + name: '[parameters(\'hubName\')]' + type: 'Microsoft.Network/virtualNetworks' + apiVersion: '2020-04-01' + location: '[parameters(\'HUB\').location]' + properties: { + addressSpace: { + addressPrefixes: [ + '[parameters(\'HUB\').addressPrefix]' + ] + } + subnets: [ + { + name: 'Infrastructure' + properties: { + addressPrefix: '[if(not(empty(parameters(\'HUB\').subnets.infra)),parameters(\'HUB\').subnets.infra, json(\'null\'))]' + } + } + { + name: 'AzureFirewallSubnet' + properties: { + addressPrefix: '[if(not(empty(parameters(\'HUB\').subnets.azfw)),parameters(\'HUB\').subnets.azfw, json(\'null\'))]' + } + } + { + name: 'GatewaySubnet' + properties: { + addressPrefix: '[if(not(empty(parameters(\'HUB\').subnets.gw)),parameters(\'HUB\').subnets.gw, json(\'null\'))]' + } + } + ] + } + } + ] + } + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + condition: '[greater(length(parameters(\'vpngw\')),0)]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]' + ] + name: '[concat(parameters(\'hubName\'),\'-vpngw\')]' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + apiVersion: '2020-05-01' + type: 'Microsoft.Network/publicIpAddresses' + location: '[parameters(\'HUB\').location]' + name: '[concat(parameters(\'vpngw\').name,\'-pip\')]' + properties: { + publicIPAllocationMethod: 'Dynamic' + } + tags: {} + } + { + apiVersion: '2020-05-01' + name: '[parameters(\'vpngw\').name]' + type: 'Microsoft.Network/virtualNetworkGateways' + location: '[parameters(\'HUB\').location]' + dependsOn: [ + '[concat(\'Microsoft.Network/publicIPAddresses/\', parameters(\'vpngw\').name,\'-pip\')]' + ] + tags: {} + properties: { + gatewayType: 'Vpn' + vpnType: '[parameters(\'vpngw\').vpnType]' + ipConfigurations: [ + { + name: 'default' + properties: { + privateIPAllocationMethod: 'Dynamic' + subnet: { + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/virtualNetworks/\', parameters(\'hubName\'),\'/subnets/GatewaySubnet\')]' + } + publicIpAddress: { + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/publicIPAddresses/\', parameters(\'vpngw\').name,\'-pip\')]' + } + } + } + ] + sku: { + name: '[parameters(\'vpngw\').sku]' + tier: '[parameters(\'vpngw\').sku]' + } + } + } + ] + } + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + condition: '[greater(length(parameters(\'ergw\')),0)]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]' + ] + name: '[concat(parameters(\'hubName\'),\'-ergw\')]' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + apiVersion: '2020-05-01' + type: 'Microsoft.Network/publicIpAddresses' + location: '[parameters(\'HUB\').location]' + name: '[concat(parameters(\'ergw\').name,\'-pip\')]' + properties: { + publicIPAllocationMethod: 'Dynamic' + } + tags: {} + } + { + apiVersion: '2020-05-01' + name: '[parameters(\'ergw\').name]' + type: 'Microsoft.Network/virtualNetworkGateways' + location: '[parameters(\'HUB\').location]' + dependsOn: [ + '[concat(\'Microsoft.Network/publicIPAddresses/\', parameters(\'ergw\').name,\'-pip\')]' + ] + tags: {} + properties: { + gatewayType: 'ExpressRoute' + ipConfigurations: [ + { + name: 'default' + properties: { + privateIPAllocationMethod: 'Dynamic' + subnet: { + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/virtualNetworks/\', parameters(\'hubName\'),\'/subnets/GatewaySubnet\')]' + } + publicIpAddress: { + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/publicIPAddresses/\', parameters(\'ergw\').name,\'-pip\')]' + } + } + } + ] + sku: { + name: '[parameters(\'ergw\').sku]' + tier: '[parameters(\'ergw\').sku]' + } + } + } + ] + } + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + condition: '[greater(length(parameters(\'azfw\')),0)]' + name: '[concat(parameters(\'hubName\'),\'-azfw\')]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + apiVersion: '2020-05-01' + type: 'Microsoft.Network/publicIpAddresses' + name: '[concat(parameters(\'azfw\').name,\'-pip\')]' + location: '[parameters(\'azfw\').location]' + sku: { + name: 'Standard' + } + zones: '[if(contains(parameters(\'azfw\'),\'pipZones\'),parameters(\'azfw\').pipZones,json(\'null\'))]' + properties: { + publicIPAllocationMethod: 'Static' + } + tags: {} + } + { + apiVersion: '2020-05-01' + type: 'Microsoft.Network/azureFirewalls' + name: '[parameters(\'azfw\').name]' + location: '[parameters(\'azfw\').location]' + zones: '[if(contains(parameters(\'azfw\'),\'fwZones\'),parameters(\'azfw\').fwZones,json(\'null\'))]' + dependsOn: [ + '[concat(parameters(\'azfw\').name,\'-pip\')]' + ] + properties: { + threatIntelMode: '[parameters(\'azfw\').threatIntelMode]' + additionalProperties: '[if(contains(parameters(\'azfw\'),\'additionalProperties\'),parameters(\'azfw\').additionalProperties,json(\'null\'))]' + sku: '[if(contains(parameters(\'azfw\'),\'sku\'),parameters(\'azfw\').sku,json(\'null\'))]' + ipConfigurations: [ + { + name: '[concat(parameters(\'azfw\').name,\'-pip\')]' + properties: { + subnet: { + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/virtualNetworks/\', parameters(\'hubName\'),\'/subnets/AzureFirewallSubnet\')]' + } + publicIPAddress: { + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/publicIPAddresses/\', parameters(\'azfw\').name,\'-pip\')]' + } + } + } + ] + firewallPolicy: '[if(contains(parameters(\'azfw\'),\'firewallPolicy\'),parameters(\'azfw\').firewallPolicy,json(\'null\'))]' + } + tags: {} + } + ] + } + } + } + ] + } + } + } + } + } + } + } + name: 'Deploy-HUB' + } + { + properties: { + Description: 'Deploy spoke network with configuration to hub network based on ipam configuration object' + DisplayName: 'Deploy spoke network with configuration to hub network based on ipam configuration object' + Mode: 'Indexed' + Parameters: { + ipam: { + type: 'Array' + metadata: { + displayName: 'ipam' + description: null + } + defaultValue: [] + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Resources/resourceGroups' + deploymentScope: 'Subscription' + existenceScope: 'Subscription' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + existenceCondition: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions/resourceGroups' + } + { + field: 'name' + like: '[concat(subscription().displayName, \'-network\')]' + } + ] + } + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + ipam: { + value: '[parameters(\'ipam\')]' + defaultValue: [] + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + ipam: { + defaultValue: [ + { + name: 'bu1-weu-msx3-vNet1' + location: 'westeurope' + virtualNetworks: { + properties: { + addressSpace: { + addressPrefixes: [ + '10.51.217.0/24' + ] + } + } + } + networkSecurityGroups: { + properties: { + securityRules: [] + } + } + routeTables: { + properties: { + routes: [] + } + } + hubVirtualNetworkConnection: { + vWanVhubResourceId: '/subscriptions/99c2838f-a548-4884-a6e2-38c1f8fb4c0b/resourceGroups/contoso-global-vwan/providers/Microsoft.Network/virtualHubs/contoso-vhub-weu' + properties: { + allowHubToRemoteVnetTransit: true + allowRemoteVnetToUseHubVnetGateways: false + enableInternetSecurity: true + } + } + } + ] + type: 'Array' + } + } + variables: { + vNetRgName: '[concat(subscription().displayName, \'-network\')]' + vNetName: '[concat(subscription().displayName, \'-vNet\')]' + vNetSubId: '[subscription().subscriptionId]' + } + resources: [ + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-ipam-\',subscription().displayName,\'-RG-\',copyIndex())]' + location: '[parameters(\'ipam\')[copyIndex()].location]' + dependsOn: [] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2020-06-01' + name: '[variables(\'vNetRgName\')]' + location: '[parameters(\'ipam\')[copyIndex()].location]' + properties: {} + } + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2020-06-01' + name: 'NetworkWatcherRG' + location: '[parameters(\'ipam\')[copyIndex()].location]' + properties: {} + } + ] + outputs: {} + } + } + copy: { + name: 'ipam-rg-loop' + count: '[length(parameters(\'ipam\'))]' + } + condition: '[if(and(not(empty(parameters(\'ipam\'))), equals(toLower(parameters(\'ipam\')[copyIndex()].name),toLower(variables(\'vNetName\')))),bool(\'true\'),bool(\'false\'))]' + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-ipam-\',subscription().displayName,\'-nsg-udr-vnet-hub-vwan-peering-\',copyIndex())]' + dependsOn: [ + '[concat(\'es-ipam-\',subscription().displayName,\'-RG-\',copyIndex())]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + condition: '[contains(parameters(\'ipam\')[copyIndex()],\'networkSecurityGroups\')]' + apiVersion: '2020-05-01' + type: 'Microsoft.Network/networkSecurityGroups' + name: '[concat(subscription().displayName, \'-nsg\')]' + location: '[parameters(\'ipam\')[copyIndex()].location]' + properties: '[if(contains(parameters(\'ipam\')[copyIndex()],\'networkSecurityGroups\'),parameters(\'ipam\')[copyIndex()].networkSecurityGroups.properties,json(\'null\'))]' + } + { + condition: '[contains(parameters(\'ipam\')[copyIndex()],\'routeTables\')]' + apiVersion: '2020-05-01' + type: 'Microsoft.Network/routeTables' + name: '[concat(subscription().displayName, \'-udr\')]' + location: '[parameters(\'ipam\')[copyIndex()].location]' + properties: '[if(contains(parameters(\'ipam\')[copyIndex()],\'routeTables\'),parameters(\'ipam\')[copyIndex()].routeTables.properties,json(\'null\'))]' + } + { + condition: '[contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\')]' + type: 'Microsoft.Network/virtualNetworks' + apiVersion: '2020-05-01' + name: '[concat(subscription().displayName, \'-vnet\')]' + location: '[parameters(\'ipam\')[copyIndex()].location]' + dependsOn: [ + '[concat(subscription().displayName, \'-nsg\')]' + '[concat(subscription().displayName, \'-udr\')]' + ] + properties: '[if(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\'),parameters(\'ipam\')[copyIndex()].virtualNetworks.properties,json(\'null\'))]' + } + { + condition: '[contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\')]' + type: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' + apiVersion: '2020-05-01' + name: '[concat(variables(\'vNetName\'), \'/peerToHub\')]' + dependsOn: [ + '[concat(subscription().displayName, \'-vnet\')]' + ] + properties: '[if(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties,json(\'null\'))]' + } + { + condition: '[and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\'),contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\'))]' + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-ipam-vWan-\',subscription().displayName,\'-peering-\',copyIndex())]' + subscriptionId: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),split(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,\'/\')[2],json(\'null\'))]' + resourceGroup: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),split(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,\'/\')[4],json(\'null\'))]' + dependsOn: [ + '[concat(subscription().displayName, \'-vnet\')]' + ] + properties: { + mode: 'Incremental' + expressionEvaluationOptions: { + scope: 'inner' + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + remoteVirtualNetwork: { + type: 'string' + } + vWanVhubName: { + Type: 'string' + defaultValue: '' + } + allowHubToRemoteVnetTransit: { + Type: 'bool' + defaultValue: true + } + allowRemoteVnetToUseHubVnetGateways: { + Type: 'bool' + defaultValue: false + } + enableInternetSecurity: { + Type: 'bool' + defaultValue: true + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualHubs/hubVirtualNetworkConnections' + apiVersion: '2020-05-01' + name: '[[concat(parameters(\'vWanVhubName\'),\'/\',last(split(parameters(\'remoteVirtualNetwork\'),\'/\')))]' + properties: { + remoteVirtualNetwork: { + id: '[[parameters(\'remoteVirtualNetwork\')]' + } + allowHubToRemoteVnetTransit: '[[parameters(\'allowHubToRemoteVnetTransit\')]' + allowRemoteVnetToUseHubVnetGateways: '[[parameters(\'allowRemoteVnetToUseHubVnetGateways\')]' + enableInternetSecurity: '[[parameters(\'enableInternetSecurity\')]' + } + } + ] + outputs: {} + } + parameters: { + remoteVirtualNetwork: { + value: '[concat(subscription().id,\'/resourceGroups/\',variables(\'vNetRgName\'), \'/providers/\',\'Microsoft.Network/virtualNetworks/\', concat(subscription().displayName, \'-vnet\'))]' + } + vWanVhubName: { + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),split(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,\'/\')[8],json(\'null\'))]' + } + allowHubToRemoteVnetTransit: { + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.properties.allowHubToRemoteVnetTransit,json(\'null\'))]' + } + allowRemoteVnetToUseHubVnetGateways: { + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.properties.allowRemoteVnetToUseHubVnetGateways,json(\'null\'))]' + } + enableInternetSecurity: { + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.properties.enableInternetSecurity,json(\'null\'))]' + } + } + } + } + { + condition: '[and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\'),contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\'))]' + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-ipam-hub-\',subscription().displayName,\'-peering-\',copyIndex())]' + subscriptionId: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\')),split(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,\'/\')[2],json(\'null\'))]' + resourceGroup: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\')),split(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,\'/\')[4],json(\'null\'))]' + dependsOn: [ + '[concat(subscription().displayName, \'-vnet\')]' + ] + properties: { + mode: 'Incremental' + expressionEvaluationOptions: { + scope: 'inner' + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + remoteVirtualNetwork: { + Type: 'string' + defaultValue: false + } + hubName: { + Type: 'string' + defaultValue: false + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' + name: '[[concat(parameters(\'hubName\'),\'/\',last(split(parameters(\'remoteVirtualNetwork\'),\'/\')))]' + apiVersion: '2020-05-01' + properties: { + allowVirtualNetworkAccess: true + allowForwardedTraffic: true + allowGatewayTransit: true + useRemoteGateways: false + remoteVirtualNetwork: { + id: '[[parameters(\'remoteVirtualNetwork\')]' + } + } + } + ] + outputs: {} + } + parameters: { + remoteVirtualNetwork: { + value: '[concat(subscription().id,\'/resourceGroups/\',variables(\'vNetRgName\'), \'/providers/\',\'Microsoft.Network/virtualNetworks/\', concat(subscription().displayName, \'-vnet\'))]' + } + hubName: { + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\')),split(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,\'/\')[8],json(\'null\'))]' + } + } + } + } + ] + outputs: {} + } + } + resourceGroup: '[variables(\'vNetRgName\')]' + copy: { + name: 'ipam-loop' + count: '[length(parameters(\'ipam\'))]' + } + condition: '[if(and(not(empty(parameters(\'ipam\'))), equals(toLower(parameters(\'ipam\')[copyIndex()].name),toLower(variables(\'vNetName\')))),bool(\'true\'),bool(\'false\'))]' + } + ] + outputs: { + ipam: { + condition: '[bool(\'true\')]' + type: 'Int' + value: '[length(parameters(\'ipam\'))]' + } + } + } + } + } + } + } + } + } + name: 'Deploy-vNet' + } + { + properties: { + Description: 'Deploy the Virtual WAN in the specific region.' + DisplayName: 'Deploy the Virtual WAN in the specific region' + Mode: 'Indexed' + Parameters: { + vwanname: { + type: 'String' + metadata: { + displayName: 'vwanname' + description: 'Name of the Virtual WAN' + } + } + vwanRegion: { + type: 'String' + metadata: { + displayName: 'vwanRegion' + description: 'Select Azure region for Virtual WAN' + strongType: 'location' + } + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/virtualWans' + deploymentScope: 'Subscription' + existenceScope: 'ResourceGroup' + name: '[parameters(\'vwanname\')]' + resourceGroupName: '[parameters(\'rgName\')]' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' + ] + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + rgName: { + value: '[parameters(\'rgName\')]' + } + vwanname: { + value: '[parameters(\'vwanname\')]' + } + vwanRegion: { + value: '[parameters(\'vwanRegion\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + rgName: { + type: 'string' + } + vwanname: { + type: 'string' + } + vwanRegion: { + type: 'string' + } + } + variables: { + vwansku: 'Standard' + } + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2018-05-01' + name: '[parameters(\'rgName\')]' + location: '[deployment().location]' + properties: {} + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + name: 'vwan' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: {} + resources: [ + { + type: 'Microsoft.Network/virtualWans' + apiVersion: '2020-05-01' + location: '[parameters(\'vwanRegion\')]' + name: '[parameters(\'vwanname\')]' + properties: { + virtualHubs: [] + vpnSites: [] + type: '[variables(\'vwansku\')]' + } + } + ] + outputs: {} + } + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-vWAN' + } + { + properties: { + Description: 'Deploy Virtual Hub network with Virtual Wan and Gateway and Firewall configured in the desired region. ' + DisplayName: 'Deploy Virtual Hub network with Virtual Wan and Gateway and Firewall configured.' + Mode: 'Indexed' + Parameters: { + vwanname: { + type: 'String' + metadata: { + displayName: 'vwanname' + description: 'Name of the Virtual WAN' + } + } + vHubName: { + type: 'String' + metadata: { + displayName: 'vHubName' + description: 'Name of the vHUB' + } + defaultValue: '' + } + vHUB: { + type: 'Object' + metadata: { + displayName: 'vHUB' + description: 'Object describing Virtual WAN vHUB' + } + } + vpngw: { + type: 'Object' + metadata: { + displayName: 'vpngw' + description: 'Object describing VPN gateway' + } + defaultValue: {} + } + ergw: { + type: 'Object' + metadata: { + displayName: 'ergw' + description: 'Object describing ExpressRoute gateway' + } + defaultValue: {} + } + azfw: { + type: 'Object' + metadata: { + displayName: 'azfw' + description: 'Object describing the Azure Firewall in vHUB' + } + defaultValue: {} + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/virtualHubs' + name: '[parameters(\'vHubName\')]' + deploymentScope: 'Subscription' + existenceScope: 'ResourceGroup' + ResourceGroupName: '[parameters(\'rgName\')]' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' + ] + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + rgName: { + value: '[parameters(\'rgName\')]' + } + vwanname: { + value: '[parameters(\'vwanname\')]' + } + vHUB: { + value: '[parameters(\'vHUB\')]' + } + vpngw: { + value: '[parameters(\'vpngw\')]' + } + ergw: { + value: '[parameters(\'ergw\')]' + } + azfw: { + value: '[parameters(\'azfw\')]' + } + vHUBName: { + value: '[parameters(\'vHUBName\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + vwanname: { + type: 'string' + metadata: { + description: 'Name of the Virtual WAN' + } + } + vHUB: { + type: 'object' + metadata: { + description: 'Object describing Virtual WAN vHUB' + } + } + vpngw: { + type: 'object' + defaultValue: {} + metadata: { + description: 'Object describing VPN gateway' + } + } + ergw: { + type: 'object' + defaultValue: {} + metadata: { + description: 'Object describing ExpressRoute gateway' + } + } + azfw: { + type: 'object' + defaultValue: {} + metadata: { + description: 'Object describing the Azure Firewall in vHUB' + } + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + vHUBName: { + type: 'String' + metadata: { + displayName: 'vHUBName' + description: 'Name of the vHUB' + } + } + } + variables: { + vhubsku: 'Standard' + vwanresourceid: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'),\'/providers/Microsoft.Network/virtualWans/\',parameters(\'vwanname\'))]' + vwanhub: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'),\'/providers/Microsoft.Network/virtualHubs/\',parameters(\'vHUBName\'))]' + } + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2018-05-01' + name: '[parameters(\'rgName\')]' + location: '[deployment().location]' + properties: {} + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + name: '[concat(\'vHUBdeploy-\',parameters(\'vHUB\').location)]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualHubs' + apiVersion: '2020-05-01' + location: '[parameters(\'vHUB\').location]' + name: '[parameters(\'vHUBname\')]' + properties: { + virtualWan: { + id: '[variables(\'vwanresourceid\')]' + } + addressPrefix: '[parameters(\'vHUB\').addressPrefix]' + sku: '[variables(\'vhubsku\')]' + } + } + ] + } + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + condition: '[greater(length(parameters(\'vpngw\')),0)]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[concat(\'vHUBdeploy-\',parameters(\'vHUB\').location)]' + ] + name: '[concat(parameters(\'vHUBName\'),\'-vpngw\')]' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Network/vpnGateways' + apiVersion: '2020-05-01' + location: '[parameters(\'vHUB\').location]' + name: '[parameters(\'vpngw\').name]' + properties: { + virtualHub: { + id: '[variables(\'vwanhub\')]' + } + bgpSettings: '[parameters(\'vpngw\').bgpSettings]' + vpnGatewayScaleUnit: '[parameters(\'vpngw\').vpnGatewayScaleUnit]' + } + } + ] + } + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + condition: '[greater(length(parameters(\'ergw\')),0)]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[concat(\'vHUBdeploy-\',parameters(\'vHUB\').location)]' + ] + name: '[concat(parameters(\'vHUBName\'),\'-ergw\')]' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Network/expressRouteGateways' + apiVersion: '2020-05-01' + location: '[parameters(\'vHUB\').location]' + name: '[parameters(\'ergw\').name]' + properties: { + virtualHub: { + id: '[variables(\'vwanhub\')]' + } + autoScaleConfiguration: '[parameters(\'ergw\').autoScaleConfiguration]' + } + } + ] + } + } + } + ] + } + } + } + } + } + } + } + name: 'Deploy-vHUB' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Virtual Machine Scale Sets to stream to a Log Analytics workspace when any Virtual Machine Scale Sets which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Virtual Machine Scale Sets to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Compute/virtualMachineScaleSets' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Compute/virtualMachineScaleSets/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-VMSS' + } + { + properties: { + Description: 'Deploys the diagnostic settings for VPN Gateway to stream to a Log Analytics workspace when any VPN Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.' + DisplayName: 'Deploy Diagnostic Settings for VPN Gateway to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/virtualNetworkGateways' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualNetworkGateways/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'GatewayDiagnosticLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'IKEDiagnosticLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'P2SDiagnosticLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'RouteDiagnosticLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'RouteDiagnosticLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'TunnelDiagnosticLog' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-VNetGW' + } + { + properties: { + Description: 'Deploy Windows Domain Join Extension with keyvault configuration when the extension does not exist on a given windows Virtual Machine' + DisplayName: 'Deploy Windows Domain Join Extension with keyvault configuration' + Mode: 'Indexed' + Parameters: { + domainUsername: { + type: 'String' + metadata: { + displayName: 'domainUsername' + description: null + } + } + domainPassword: { + type: 'String' + metadata: { + displayName: 'domainPassword' + description: null + } + } + domainFQDN: { + type: 'String' + metadata: { + displayName: 'domainFQDN' + description: null + } + } + domainOUPath: { + type: 'String' + metadata: { + displayName: 'domainOUPath' + description: null + } + } + keyVaultResourceId: { + type: 'String' + metadata: { + displayName: 'keyVaultResourceId' + description: null + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Guest Configuration' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Compute/virtualMachines' + } + { + field: 'Microsoft.Compute/imagePublisher' + equals: 'MicrosoftWindowsServer' + } + { + field: 'Microsoft.Compute/imageOffer' + equals: 'WindowsServer' + } + { + field: 'Microsoft.Compute/imageSKU' + in: [ + '2008-R2-SP1' + '2008-R2-SP1-smalldisk' + '2008-R2-SP1-zhcn' + '2012-Datacenter' + '2012-datacenter-gensecond' + '2012-Datacenter-smalldisk' + '2012-datacenter-smalldisk-g2' + '2012-Datacenter-zhcn' + '2012-datacenter-zhcn-g2' + '2012-R2-Datacenter' + '2012-r2-datacenter-gensecond' + '2012-R2-Datacenter-smalldisk' + '2012-r2-datacenter-smalldisk-g2' + '2012-R2-Datacenter-zhcn' + '2012-r2-datacenter-zhcn-g2' + '2016-Datacenter' + '2016-datacenter-gensecond' + '2016-datacenter-gs' + '2016-Datacenter-Server-Core' + '2016-datacenter-server-core-g2' + '2016-Datacenter-Server-Core-smalldisk' + '2016-datacenter-server-core-smalldisk-g2' + '2016-Datacenter-smalldisk' + '2016-datacenter-smalldisk-g2' + '2016-Datacenter-with-Containers' + '2016-datacenter-with-containers-g2' + '2016-Datacenter-with-RDSH' + '2016-Datacenter-zhcn' + '2016-datacenter-zhcn-g2' + '2019-Datacenter' + '2019-Datacenter-Core' + '2019-datacenter-core-g2' + '2019-Datacenter-Core-smalldisk' + '2019-datacenter-core-smalldisk-g2' + '2019-Datacenter-Core-with-Containers' + '2019-datacenter-core-with-containers-g2' + '2019-Datacenter-Core-with-Containers-smalldisk' + '2019-datacenter-core-with-containers-smalldisk-g2' + '2019-datacenter-gensecond' + '2019-datacenter-gs' + '2019-Datacenter-smalldisk' + '2019-datacenter-smalldisk-g2' + '2019-Datacenter-with-Containers' + '2019-datacenter-with-containers-g2' + '2019-Datacenter-with-Containers-smalldisk' + '2019-datacenter-with-containers-smalldisk-g2' + '2019-Datacenter-zhcn' + '2019-datacenter-zhcn-g2' + 'Datacenter-Core-1803-with-Containers-smalldisk' + 'datacenter-core-1803-with-containers-smalldisk-g2' + 'Datacenter-Core-1809-with-Containers-smalldisk' + 'datacenter-core-1809-with-containers-smalldisk-g2' + 'Datacenter-Core-1903-with-Containers-smalldisk' + 'datacenter-core-1903-with-containers-smalldisk-g2' + 'datacenter-core-1909-with-containers-smalldisk' + 'datacenter-core-1909-with-containers-smalldisk-g1' + 'datacenter-core-1909-with-containers-smalldisk-g2' + ] + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Compute/virtualMachines/extensions' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c' + ] + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Compute/virtualMachines/extensions/type' + equals: 'JsonADDomainExtension' + } + { + field: 'Microsoft.Compute/virtualMachines/extensions/publisher' + equals: 'Microsoft.Compute' + } + ] + } + deployment: { + properties: { + mode: 'incremental' + parameters: { + vmName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + domainUsername: { + reference: { + keyVault: { + id: '[parameters(\'keyVaultResourceId\')]' + } + secretName: '[parameters(\'domainUsername\')]' + } + } + domainPassword: { + reference: { + keyVault: { + id: '[parameters(\'keyVaultResourceId\')]' + } + secretName: '[parameters(\'domainPassword\')]' + } + } + domainOUPath: { + value: '[parameters(\'domainOUPath\')]' + } + domainFQDN: { + value: '[parameters(\'domainFQDN\')]' + } + keyVaultResourceId: { + value: '[parameters(\'keyVaultResourceId\')]' + } + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + vmName: { + type: 'string' + } + location: { + type: 'string' + } + domainUsername: { + type: 'string' + } + domainPassword: { + type: 'securestring' + } + domainFQDN: { + type: 'string' + } + domainOUPath: { + type: 'string' + } + keyVaultResourceId: { + type: 'string' + } + } + variables: { + domainJoinOptions: 3 + vmName: '[parameters(\'vmName\')]' + } + resources: [ + { + apiVersion: '2015-06-15' + type: 'Microsoft.Compute/virtualMachines/extensions' + name: '[concat(variables(\'vmName\'),\'/joindomain\')]' + location: '[resourceGroup().location]' + properties: { + publisher: 'Microsoft.Compute' + type: 'JsonADDomainExtension' + typeHandlerVersion: '1.3' + autoUpgradeMinorVersion: true + settings: { + Name: '[parameters(\'domainFQDN\')]' + User: '[parameters(\'domainUserName\')]' + Restart: 'true' + Options: '[variables(\'domainJoinOptions\')]' + OUPath: '[parameters(\'domainOUPath\')]' + } + protectedSettings: { + Password: '[parameters(\'domainPassword\')]' + } + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-Windows-DomainJoin' + } + ] +} +var initiatives = { + policySetDefinitions: [ + { + properties: { + Description: 'This policy set deploys the configurations of application Azure resources to forward diagnostic logs and metrics to an Azure Log Analytics workspace. See the list of policies of the services that are included ' + DisplayName: 'Deploy Diagnostic Settings to Azure Services' + Parameters: { + logAnalytics: { + metadata: { + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + displayName: 'Log Analytics workspace' + strongType: 'omsWorkspace' + } + type: 'String' + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + ACILogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Container Instances to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Container Instances to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.' + } + } + ACRLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Container Registry to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Container Registry to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.' + } + } + AKSLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Kubernetes Service to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Kubernetes Service to stream to a Log Analytics workspace when any Kubernetes Service which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.' + } + } + AnalysisServiceLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Analysis Services to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Analysis Services to stream to a Log Analytics workspace when any Analysis Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + APIMgmtLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for API Management to Log Analytics workspace' + description: 'Deploys the diagnostic settings for API Management to stream to a Log Analytics workspace when any API Management which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + ApplicationGatewayLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Application Gateway to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Application Gateway to stream to a Log Analytics workspace when any Application Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + AutomationLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Automation to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Automation to stream to a Log Analytics workspace when any Automation which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + BatchLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Batch to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Batch to stream to a Log Analytics workspace when any Batch which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + CDNEndpointsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for CDN Endpoint to Log Analytics workspace' + description: 'Deploys the diagnostic settings for CDN Endpoint to stream to a Log Analytics workspace when any CDN Endpoint which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + CognitiveServicesLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Cognitive Services to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Cognitive Services to stream to a Log Analytics workspace when any Cognitive Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + CosmosLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Cosmos DB to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Cosmos DB to stream to a Log Analytics workspace when any Cosmos DB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + DatabricksLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Databricks to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Databricks to stream to a Log Analytics workspace when any Databricks which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + DataFactoryLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Data Factory to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Data Factory to stream to a Log Analytics workspace when any Data Factory which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + DataLakeStoreLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Azure Data Lake Store to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Azure Data Lake Store to stream to a Log Analytics workspace when anyAzure Data Lake Store which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + DataLakeAnalyticsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Data Lake Analytics to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Data Lake Analytics to stream to a Log Analytics workspace when any Data Lake Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + EventGridSubLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Event Grid subscriptions to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Event Grid subscriptions to stream to a Log Analytics workspace when any Event Grid subscriptions which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + EventGridTopicLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Event Grid Topic to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Event Grid Topic to stream to a Log Analytics workspace when any Event Grid Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + EventHubLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Event Hubs to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Event Hubs to stream to a Log Analytics workspace when any Event Hubs which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + EventSystemTopicLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Event Grid System Topic to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Event Grid System Topic to stream to a Log Analytics workspace when any Event Grid System Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + ExpressRouteLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for ExpressRoute to Log Analytics workspace' + description: 'Deploys the diagnostic settings for ExpressRoute to stream to a Log Analytics workspace when any ExpressRoute which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + FirewallLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Firewall to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Firewall to stream to a Log Analytics workspace when any Firewall which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + FrontDoorLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Front Door to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Front Door to stream to a Log Analytics workspace when any Front Door which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + FunctionAppLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Azure Function App to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Azure Function App to stream to a Log Analytics workspace when any function app which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + HDInsightLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for HDInsight to Log Analytics workspace' + description: 'Deploys the diagnostic settings for HDInsight to stream to a Log Analytics workspace when any HDInsight which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + IotHubLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for IoT Hub to Log Analytics workspace' + description: 'Deploys the diagnostic settings for IoT Hub to stream to a Log Analytics workspace when any IoT Hub which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + KeyVaultLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Key Vault to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Key Vault to stream to a Log Analytics workspace when any Key Vault which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + LoadBalancerLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Load Balancer to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Load Balancer to stream to a Log Analytics workspace when any Load Balancer which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + LogicAppsISELogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Logic Apps integration service environment to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Logic Apps integration service environment to stream to a Log Analytics workspace when any Logic Apps integration service environment which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + LogicAppsWFLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Logic Apps Workflow runtime to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Logic Apps Workflow runtimeto stream to a Log Analytics workspace when any Logic Apps Workflow runtime which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + MariaDBLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for MariaDB to Log Analytics workspace' + description: 'Deploys the diagnostic settings for MariaDB to stream to a Log Analytics workspace when any MariaDB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + MlWorkspaceLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Machine Learning workspace to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Machine Learning workspace to stream to a Log Analytics workspace when any Machine Learning workspace which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + MySQLLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Database for MySQL to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Database for MySQL to stream to a Log Analytics workspace when any Database for MySQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + NetworkSecurityGroupsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Network Security Groups to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Network Security Groups to stream to a Log Analytics workspace when any Network Security Groups which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + NetworkNICLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Network Interfaces to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Network Interfaces to stream to a Log Analytics workspace when any Network Interfaces which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + PostgreSQLLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Database for PostgreSQL to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Database for PostgreSQL to stream to a Log Analytics workspace when any Database for PostgreSQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + PowerBIEmbeddedLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Power BI Embedded to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Power BI Embedded to stream to a Log Analytics workspace when any Power BI Embedded which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + NetworkPublicIPNicLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Public IP addresses to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Public IP addresses to stream to a Log Analytics workspace when any Public IP addresses which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + RecoveryVaultLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Recovery Services vaults to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Recovery Services vaults to stream to a Log Analytics workspace when any Recovery Services vaults which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + RedisCacheLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Redis Cache to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Redis Cache to stream to a Log Analytics workspace when any Redis Cache which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + RelayLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Relay to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Relay to stream to a Log Analytics workspace when any Relay which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + SearchServicesLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Search Services to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Search Services to stream to a Log Analytics workspace when any Search Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + ServiceBusLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Service Bus namespaces to Log Analytics workspace' + description: 'Deploys the diagnostic settings for ServiceBus to stream to a Log Analytics workspace when any ServiceBus which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + SignalRLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for SignalR to Log Analytics workspace' + description: 'Deploys the diagnostic settings for SignalR to stream to a Log Analytics workspace when any SignalR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + SQLDBsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for SQL Databases to Log Analytics workspace' + description: 'Deploys the diagnostic settings for SQL Databases to stream to a Log Analytics workspace when any SQL Databases which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + SQLElasticPoolsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for SQL Elastic Pools to Log Analytics workspace' + description: 'Deploys the diagnostic settings for SQL Elastic Pools to stream to a Log Analytics workspace when any SQL Elastic Pools which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + SQLMLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for SQL Managed Instances to Log Analytics workspace' + description: 'Deploys the diagnostic settings for SQL Managed Instances to stream to a Log Analytics workspace when any SQL Managed Instances which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + StreamAnalyticsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Stream Analytics to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Stream Analytics to stream to a Log Analytics workspace when any Stream Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + TimeSeriesInsightsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Time Series Insights to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Time Series Insights to stream to a Log Analytics workspace when any Time Series Insights which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + TrafficManagerLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Traffic Manager to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Traffic Manager to stream to a Log Analytics workspace when any Traffic Manager which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + VirtualNetworkLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Virtual Network to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Virtual Network to stream to a Log Analytics workspace when any Virtual Network which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + VirtualMachinesLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Virtual Machines to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Virtual Machines to stream to a Log Analytics workspace when any Virtual Machines which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + VMSSLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Virtual Machine Scale Sets to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Virtual Machine Scale Sets to stream to a Log Analytics workspace when any Virtual Machine Scale Sets which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + VNetGWLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for VPN Gateway to Log Analytics workspace' + description: 'Deploys the diagnostic settings for VPN Gateway to stream to a Log Analytics workspace when any VPN Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.' + } + } + AppServiceLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for App Service Plan to Log Analytics workspace' + description: 'Deploys the diagnostic settings for App Service Plan to stream to a Log Analytics workspace when any App Service Plan which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + AppServiceWebappLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for App Service to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Web App to stream to a Log Analytics workspace when any Web App which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + } + PolicyDefinitionGroups: null + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyDefinitions: [ + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ACI' + policyDefinitionReferenceId: 'ACIDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'ACILogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ACR' + policyDefinitionReferenceId: 'ACRDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'ACRLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AKS' + policyDefinitionReferenceId: 'AKSDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'AKSLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AnalysisService' + policyDefinitionReferenceId: 'AnalysisServiceDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'AnalysisServiceLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-APIMgmt' + policyDefinitionReferenceId: 'APIMgmtDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'APIMgmtLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ApplicationGateway' + policyDefinitionReferenceId: 'ApplicationGatewayDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'ApplicationGatewayLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AA' + policyDefinitionReferenceId: 'AutomationDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'AutomationLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Batch' + policyDefinitionReferenceId: 'BatchDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'BatchLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CDNEndpoints' + policyDefinitionReferenceId: 'CDNEndpointsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'CDNEndpointsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CognitiveServices' + policyDefinitionReferenceId: 'CognitiveServicesDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'CognitiveServicesLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CosmosDB' + policyDefinitionReferenceId: 'CosmosDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'CosmosLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Databricks' + policyDefinitionReferenceId: 'DatabricksDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'DatabricksLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DataFactory' + policyDefinitionReferenceId: 'DataFactoryDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'DataFactoryLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DataLakeStore' + policyDefinitionReferenceId: 'DataLakeStoreDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'DataLakeStoreLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DLAnalytics' + policyDefinitionReferenceId: 'DataLakeAnalyticsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'DataLakeAnalyticsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridSub' + policyDefinitionReferenceId: 'EventGridSubDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'EventGridSubLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridTopic' + policyDefinitionReferenceId: 'EventGridTopicDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'EventGridTopicLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventHub' + policyDefinitionReferenceId: 'EventHubDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'EventHubLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridSystemTopic' + policyDefinitionReferenceId: 'EventSystemTopicDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'EventSystemTopicLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ExpressRoute' + policyDefinitionReferenceId: 'ExpressRouteDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'ExpressRouteLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Firewall' + policyDefinitionReferenceId: 'FirewallDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'FirewallLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-FrontDoor' + policyDefinitionReferenceId: 'FrontDoorDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'FrontDoorLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Function' + policyDefinitionReferenceId: 'FunctionAppDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'FunctionAppLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-HDInsight' + policyDefinitionReferenceId: 'HDInsightDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'HDInsightLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-iotHub' + policyDefinitionReferenceId: 'IotHubDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'IotHubLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-KeyVault' + policyDefinitionReferenceId: 'KeyVaultDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'KeyVaultLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LoadBalancer' + policyDefinitionReferenceId: 'LoadBalancerDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'LoadBalancerLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LogicAppsISE' + policyDefinitionReferenceId: 'LogicAppsISEDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'LogicAppsISELogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LogicAppsWF' + policyDefinitionReferenceId: 'LogicAppsWFDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'LogicAppsWFLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MariaDB' + policyDefinitionReferenceId: 'MariaDBDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'MariaDBLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MlWorkspace' + policyDefinitionReferenceId: 'MlWorkspaceDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'MlWorkspaceLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MySQL' + policyDefinitionReferenceId: 'MySQLDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'MySQLLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-NetworkSecurityGroups' + policyDefinitionReferenceId: 'NetworkSecurityGroupsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'NetworkSecurityGroupsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-NIC' + policyDefinitionReferenceId: 'NetworkNICDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'NetworkNICLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PostgreSQL' + policyDefinitionReferenceId: 'PostgreSQLDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'PostgreSQLLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PowerBIEmbedded' + policyDefinitionReferenceId: 'PowerBIEmbeddedDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'PowerBIEmbeddedLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PublicIP' + policyDefinitionReferenceId: 'NetworkPublicIPNicDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'NetworkPublicIPNicLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-RecoveryVault' + policyDefinitionReferenceId: 'RecoveryVaultDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'RecoveryVaultLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-RedisCache' + policyDefinitionReferenceId: 'RedisCacheDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'RedisCacheLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Relay' + policyDefinitionReferenceId: 'RelayDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'RelayLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SearchServices' + policyDefinitionReferenceId: 'SearchServicesDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'SearchServicesLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ServiceBus' + policyDefinitionReferenceId: 'ServiceBusDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'ServiceBusLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SignalR' + policyDefinitionReferenceId: 'SignalRDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'SignalRLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLDBs' + policyDefinitionReferenceId: 'SQLDBsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'SQLDBsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLElasticPools' + policyDefinitionReferenceId: 'SQLElasticPoolsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'SQLElasticPoolsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLMI' + policyDefinitionReferenceId: 'SQLMDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'SQLMLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-StreamAnalytics' + policyDefinitionReferenceId: 'StreamAnalyticsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'StreamAnalyticsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-TimeSeriesInsights' + policyDefinitionReferenceId: 'TimeSeriesInsightsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'TimeSeriesInsightsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-TrafficManager' + policyDefinitionReferenceId: 'TrafficManagerDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'TrafficManagerLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VirtualNetwork' + policyDefinitionReferenceId: 'VirtualNetworkDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'VirtualNetworkLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VM' + policyDefinitionReferenceId: 'VirtualMachinesDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'VirtualMachinesLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VMSS' + policyDefinitionReferenceId: 'VMSSDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'VMSSLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VNetGW' + policyDefinitionReferenceId: 'VNetGWDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'VNetGWLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-WebServerFarm' + policyDefinitionReferenceId: 'AppServiceDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'AppServiceLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Website' + policyDefinitionReferenceId: 'AppServiceWebappDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'AppServiceWebappLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + ] + } + type: null + name: 'Deploy-Diag-LogAnalytics' + } + { + properties: { + Description: 'This policy denies creation of Azure PAAS services with exposed public endpoints. This policy set includes the policy for the following services KeyVault, Storage accounts, AKS, Cosmos, SQL Servers, MariaDB, MySQL and Postgress. ' + DisplayName: 'Public network access should be disabled for PAAS services' + Parameters: { + CosmosPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access should be disabled for CosmosDB' + description: 'This policy denies that Cosmos database accounts are created with out public network access is disabled.' + } + } + MariaDBPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access should be disabled for MariaDB' + description: 'This policy denies the creation of Maria DB accounts with exposed public endpoints' + } + } + MySQLPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access should be disabled for MySQL' + description: 'This policy denies creation of MySql DB accounts with exposed public endpoints' + } + } + PostgreSQLPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access should be disabled for PostgreSql' + description: 'This policy denies creation of Postgre SQL DB accounts with exposed public endpoints' + } + } + KeyVaultPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access should be disabled for KeyVault' + description: 'This policy denies creation of Key Vaults with IP Firewall exposed to all public endpoints' + } + } + SqlServerPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access on Azure SQL Database should be disabled' + description: 'This policy denies creation of Sql servers with exposed public endpoints' + } + } + StoragePublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access onStorage accounts should be disabled' + description: 'This policy denies creation of storage accounts with IP Firewall exposed to all public endpoints' + } + } + AKSPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access on AKS API should be disabled' + description: 'This policy denies the creation of Azure Kubernetes Service non-private clusters' + } + } + } + PolicyDefinitionGroups: null + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyDefinitions: [ + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-CosmosDB' + policyDefinitionReferenceId: 'CosmosDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'CosmosPublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-MariaDB' + policyDefinitionReferenceId: 'MariaDBDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'MariaDBPublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-MySQL' + policyDefinitionReferenceId: 'MySQLDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'MySQLPublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-PostgreSql' + policyDefinitionReferenceId: 'PostgreSQLDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'PostgreSQLPublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-KeyVault' + policyDefinitionReferenceId: 'KeyVaultDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'KeyVaultPublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Sql' + policyDefinitionReferenceId: 'SqlServerDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'SqlServerPublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Storage' + policyDefinitionReferenceId: 'StorageDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'StoragePublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Aks' + policyDefinitionReferenceId: 'AKSDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'AKSPublicIpDenyEffect\')]' + } + } + } + ] + } + type: null + name: 'Deny-PublicEndpoints' + } + { + properties: { + Description: 'Deploy auditing, Alert, TDE and SQL vulnerability to SQL Databases when it not exist in the deployment' + DisplayName: 'Deploy SQL Database built-in SQL security configuration' + Parameters: { + vulnerabilityAssessmentsEmail: { + metadata: { + description: 'The email address to send alerts' + displayName: 'The email address to send alerts' + } + type: 'String' + } + vulnerabilityAssessmentsStorageID: { + metadata: { + description: 'The storage account ID to store assessments' + displayName: 'The storage account ID to store assessments' + } + type: 'String' + } + SqlDbTdeDeploySqlSecurityEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy SQL Database Transparent Data Encryption ' + description: 'Deploy the Transparent Data Encryption when it is not enabled in the deployment' + } + } + SqlDbSecurityAlertPoliciesDeploySqlSecurityEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy SQL Database security Alert Policies configuration with email admin accounts' + description: 'Deploy the security Alert Policies configuration with email admin accounts when it not exist in current configuration' + } + } + SqlDbAuditingSettingsDeploySqlSecurityEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy SQL database auditing settings' + description: 'Deploy auditing settings to SQL Database when it not exist in the deployment' + } + } + SqlDbVulnerabilityAssessmentsDeploySqlSecurityEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy SQL Database vulnerability Assessments' + description: 'Deploy SQL Database vulnerability Assessments when it not exist in the deployment. To the specific storage account in the parameters' + } + } + } + PolicyDefinitionGroups: null + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyDefinitions: [ + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-Tde' + policyDefinitionReferenceId: 'SqlDbTdeDeploySqlSecurity' + parameters: { + effect: { + value: '[parameters(\'SqlDbTdeDeploySqlSecurityEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-SecurityAlertPolicies' + policyDefinitionReferenceId: 'SqlDbSecurityAlertPoliciesDeploySqlSecurity' + parameters: { + effect: { + value: '[parameters(\'SqlDbSecurityAlertPoliciesDeploySqlSecurityEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-AuditingSettings' + policyDefinitionReferenceId: 'SqlDbAuditingSettingsDeploySqlSecurity' + parameters: { + effect: { + value: '[parameters(\'SqlDbAuditingSettingsDeploySqlSecurityEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-vulnerabilityAssessments' + policyDefinitionReferenceId: 'SqlDbVulnerabilityAssessmentsDeploySqlSecurity' + parameters: { + effect: { + value: '[parameters(\'SqlDbVulnerabilityAssessmentsDeploySqlSecurityEffect\')]' + } + vulnerabilityAssessmentsEmail: { + value: '[parameters(\'vulnerabilityAssessmentsEmail\')]' + } + vulnerabilityAssessmentsStorageID: { + value: '[parameters(\'vulnerabilityAssessmentsStorageID\')]' + } + } + } + ] + } + type: null + name: 'Deploy-Sql-Security' + } + ] +} + +resource policies_policyDefinitions_0_name 'Microsoft.Authorization/policyDefinitions@2019-09-01' = { + name: policies.policyDefinitions[0].name + properties: { + displayName: policies.policyDefinitions[0].properties.displayName + description: policies.policyDefinitions[0].properties.description + mode: 'All' + policyType: 'Custom' + parameters: policies.policyDefinitions[0].properties.parameters + policyRule: policies.policyDefinitions[0].properties.policyRule + metadata: policies.policyDefinitions[0].properties.metadata + } +} + +resource initiatives_policySetDefinitions_0_name 'Microsoft.Authorization/policySetDefinitions@2019-09-01' = { + name: initiatives.policySetDefinitions[0].name + properties: { + displayName: initiatives.policySetDefinitions[0].properties.displayName + description: initiatives.policySetDefinitions[0].properties.description + parameters: initiatives.policySetDefinitions[0].properties.parameters + policyDefinitions: initiatives.policySetDefinitions[0].properties.policyDefinitions + metadata: initiatives.policySetDefinitions[0].properties.metadata + } +} \ No newline at end of file diff --git a/src/Bicep.Core.Samples/Files/LargeTemplate_LF/main.diagnostics.bicep b/src/Bicep.Core.Samples/Files/LargeTemplate_LF/main.diagnostics.bicep new file mode 100644 index 00000000000..3f44a0878d1 --- /dev/null +++ b/src/Bicep.Core.Samples/Files/LargeTemplate_LF/main.diagnostics.bicep @@ -0,0 +1,17337 @@ +targetScope = 'managementGroup' + +@maxLength(5) +param topLevelManagementGroupPrefix string + +var scope = '/providers/Microsoft.Management/managementGroups/${topLevelManagementGroupPrefix}' +var policies = { + policyDefinitions: [ + { + properties: { + Description: 'Deploys the diagnostic settings for Container Instances to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.' + DisplayName: 'Deploy Diagnostic Settings for Container Instances to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.ContainerInstance/containerGroups' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.ContainerInstance/containerGroups/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-ACI' + } + { + Properties: { + Description: 'Depoloys a default budget on subscriptions.' + DisplayName: 'Deploy a default budget on subscriptions' + Mode: 'All' + Parameters: { + amount: { + type: 'string' + defaultValue: '1000' + metadata: { + description: 'The total amount of cost or usage to track with the budget' + } + } + timeGrain: { + type: 'string' + defaultValue: 'Monthly' + allowedValues: [ + 'Monthly' + 'Quarterly' + 'Annually' + 'BillingMonth' + 'BillingQuarter' + 'BillingAnnual' + ] + metadata: { + description: 'The time covered by a budget. Tracking of the amount will be reset based on the time grain.' + } + } + firstThreshold: { + type: 'string' + defaultValue: '90' + metadata: { + description: 'Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0 and 1000.' + } + } + secondThreshold: { + type: 'string' + defaultValue: '100' + metadata: { + description: 'Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0 and 1000.' + } + } + contactRoles: { + type: 'array' + defaultValue: [ + 'Owner' + 'Contributor' + ] + metadata: { + description: 'The list of contact RBAC roles, in an array, to send the budget notification to when the threshold is exceeded.' + } + } + contactEmails: { + type: 'array' + defaultValue: [] + metadata: { + description: 'The list of email addresses, in an array, to send the budget notification to when the threshold is exceeded.' + } + } + contactGroups: { + type: 'array' + defaultValue: [] + metadata: { + description: 'The list of action groups, in an array, to send the budget notification to when the threshold is exceeded. It accepts array of strings.' + } + } + } + metadata: { + version: '1.0.0' + category: 'Budget' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: 'DeployIfNotExists' + details: { + type: 'Microsoft.Consumption/budgets' + deploymentScope: 'Subscription' + existenceScope: 'Subscription' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Consumption/budgets/amount' + equals: '[parameters(\'amount\')]' + } + { + field: 'Microsoft.Consumption/budgets/timeGrain' + equals: '[parameters(\'timeGrain\')]' + } + { + field: 'Microsoft.Consumption/budgets/category' + equals: 'Cost' + } + ] + } + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' + ] + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + amount: { + value: '[parameters(\'amount\')]' + } + timeGrain: { + value: '[parameters(\'timeGrain\')]' + } + firstThreshold: { + value: '[parameters(\'firstThreshold\')]' + } + secondThreshold: { + value: '[parameters(\'secondThreshold\')]' + } + contactEmails: { + value: '[parameters(\'contactEmails\')]' + } + contactRoles: { + value: '[parameters(\'contactRoles\')]' + } + contactGroups: { + value: '[parameters(\'contactGroups\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + amount: { + type: 'string' + } + timeGrain: { + type: 'string' + } + firstThreshold: { + type: 'string' + } + secondThreshold: { + type: 'string' + } + contactEmails: { + type: 'array' + } + contactRoles: { + type: 'array' + } + contactGroups: { + type: 'array' + } + startDate: { + type: 'string' + defaultValue: '[concat(utcNow(\'MM\'), \'/01/\', utcNow(\'yyyy\'))]' + } + } + resources: [ + { + type: 'Microsoft.Consumption/budgets' + apiVersion: '2019-10-01' + name: 'default-sandbox-budget' + properties: { + timePeriod: { + startDate: '[parameters(\'startDate\')]' + } + timeGrain: '[parameters(\'timeGrain\')]' + amount: '[parameters(\'amount\')]' + category: 'Cost' + notifications: { + NotificationForExceededBudget1: { + enabled: true + operator: 'GreaterThan' + threshold: '[parameters(\'firstThreshold\')]' + contactEmails: '[parameters(\'contactEmails\')]' + contactRoles: '[parameters(\'contactRoles\')]' + contactGroups: '[parameters(\'contactGroups\')]' + } + NotificationForExceededBudget2: { + enabled: true + operator: 'GreaterThan' + threshold: '[parameters(\'secondThreshold\')]' + contactEmails: '[parameters(\'contactEmails\')]' + contactRoles: '[parameters(\'contactRoles\')]' + contactGroups: '[parameters(\'contactGroups\')]' + } + } + } + } + ] + } + } + } + } + } + } + } + name: 'Deploy-Budget' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Container Registry to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.' + DisplayName: 'Deploy Diagnostic Settings for Container Registry to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.ContainerRegistry/registries' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.ContainerRegistry/registries/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'ContainerRegistryLoginEvents' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ContainerRegistryRepositoryEvents' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-ACR' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Activity Log to stream to a Log Analytics workspace when any Activity Log which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with category enabled.' + DisplayName: 'Deploy Diagnostic Settings for Activity Log to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Primary Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + deploymentScope: 'Subscription' + existenceScope: 'Subscription' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + logAnalytics: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + name: 'subscriptionToLa' + type: 'Microsoft.Insights/diagnosticSettings' + apiVersion: '2017-05-01-preview' + location: 'Global' + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + logs: [ + { + category: 'Administrative' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Security' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ServiceHealth' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Alert' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Recommendation' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Policy' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Autoscale' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ResourceHealth' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + } + } + } + } + name: 'Deploy-Diagnostics-ActivityLog' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Kubernetes Service to stream to a Log Analytics workspace when any Kubernetes Service which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.' + DisplayName: 'Deploy Diagnostic Settings for Kubernetes Service to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.ContainerService/managedClusters' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.ContainerService/managedClusters/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'kube-audit' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'kube-apiserver' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'kube-controller-manager' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'kube-scheduler' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'cluster-autoscaler' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'guard' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'kube-audit-admin' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-AKS' + } + { + Properties: { + Description: 'This policy deploys virtual network and peer to the hub' + DisplayName: 'Deploys virtual network peering to hub' + Mode: 'All' + Parameters: { + vNetName: { + type: 'String' + metadata: { + displayName: 'vNetName' + description: 'Name of the landing zone vNet' + } + } + vNetRgName: { + type: 'String' + metadata: { + displayName: 'vNetRgName' + description: 'Name of the landing zone vNet RG' + } + } + vNetLocation: { + type: 'String' + metadata: { + displayName: 'vNetLocation' + description: 'Location for the vNet' + } + } + vNetCidrRange: { + type: 'String' + metadata: { + displayName: 'vNetCidrRange' + description: 'CIDR Range for the vNet' + } + } + hubResourceId: { + type: 'String' + metadata: { + displayName: 'hubResourceId' + description: 'Resource ID for the HUB vNet' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: 'deployIfNotExists' + details: { + type: 'Microsoft.Network/virtualNetworks' + name: '[parameters(\'vNetName\')]' + deploymentScope: 'Subscription' + existenceScope: 'ResourceGroup' + ResourceGroupName: '[parameters(\'vNetRgName\')]' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' + ] + existenceCondition: { + allOf: [ + { + field: 'name' + like: '[parameters(\'vNetName\')]' + } + { + field: 'location' + equals: '[parameters(\'vNetLocation\')]' + } + ] + } + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + vNetRgName: { + value: '[parameters(\'vNetRgName\')]' + } + vNetName: { + value: '[parameters(\'vNetName\')]' + } + vNetLocation: { + value: '[parameters(\'vNetLocation\')]' + } + vNetCidrRange: { + value: '[parameters(\'vNetCidrRange\')]' + } + hubResourceId: { + value: '[parameters(\'hubResourceId\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + vNetRgName: { + type: 'string' + } + vNetName: { + type: 'string' + } + vNetLocation: { + type: 'string' + } + vNetCidrRange: { + type: 'string' + } + vNetPeerUseRemoteGateway: { + type: 'bool' + defaultValue: false + } + hubResourceId: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-lz-vnet-\',substring(uniqueString(subscription().id),0,6),\'-rg\')]' + location: '[parameters(\'vNetLocation\')]' + dependsOn: [] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2020-06-01' + name: '[parameters(\'vNetRgName\')]' + location: '[parameters(\'vNetLocation\')]' + properties: {} + } + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2020-06-01' + name: 'NetworkWatcherRG' + location: '[parameters(\'vNetLocation\')]' + properties: {} + } + ] + outputs: {} + } + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-lz-vnet-\',substring(uniqueString(subscription().id),0,6))]' + dependsOn: [ + '[concat(\'es-lz-vnet-\',substring(uniqueString(subscription().id),0,6),\'-rg\')]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualNetworks' + apiVersion: '2020-06-01' + name: '[parameters(\'vNetName\')]' + location: '[parameters(\'vNetLocation\')]' + dependsOn: [] + properties: { + addressSpace: { + addressPrefixes: [ + '[parameters(\'vNetCidrRange\')]' + ] + } + } + } + { + type: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' + apiVersion: '2020-05-01' + name: '[concat(parameters(\'vNetName\'), \'/peerToHub\')]' + dependsOn: [ + '[parameters(\'vNetName\')]' + ] + properties: { + remoteVirtualNetwork: { + id: '[parameters(\'hubResourceId\')]' + } + allowVirtualNetworkAccess: true + allowForwardedTraffic: true + allowGatewayTransit: false + useRemoteGateways: '[parameters(\'vNetPeerUseRemoteGateway\')]' + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-lz-hub-\',substring(uniqueString(subscription().id),0,6),\'-peering\')]' + subscriptionId: '[split(parameters(\'hubResourceId\'),\'/\')[2]]' + resourceGroup: '[split(parameters(\'hubResourceId\'),\'/\')[4]]' + dependsOn: [ + '[parameters(\'vNetName\')]' + ] + properties: { + mode: 'Incremental' + expressionEvaluationOptions: { + scope: 'inner' + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + remoteVirtualNetwork: { + Type: 'string' + defaultValue: false + } + hubName: { + Type: 'string' + defaultValue: false + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' + name: '[[concat(parameters(\'hubName\'),\'/\',last(split(parameters(\'remoteVirtualNetwork\'),\'/\')))]' + apiVersion: '2020-05-01' + properties: { + allowVirtualNetworkAccess: true + allowForwardedTraffic: true + allowGatewayTransit: true + useRemoteGateways: false + remoteVirtualNetwork: { + id: '[[parameters(\'remoteVirtualNetwork\')]' + } + } + } + ] + outputs: {} + } + parameters: { + remoteVirtualNetwork: { + value: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'vNetRgName\'), \'/providers/\',\'Microsoft.Network/virtualNetworks/\', parameters(\'vNetName\'))]' + } + hubName: { + value: '[split(parameters(\'hubResourceId\'),\'/\')[8]]' + } + } + } + } + ] + outputs: {} + } + } + resourceGroup: '[parameters(\'vNetRgName\')]' + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-VNET-HubSpoke' + } + { + properties: { + Description: 'This policy denies the creation of Azure Kubernetes Service non-private clusters' + DisplayName: 'Public network access on AKS API should be disabled' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Kubernetes' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.ContainerService/managedClusters' + } + { + field: 'Microsoft.ContainerService/managedClusters/apiServerAccessProfile.enablePrivateCluster' + notequals: 'true' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-Aks' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Analysis Services to stream to a Log Analytics workspace when any Analysis Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Analysis Services to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.AnalysisServices/servers' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.AnalysisServices/servers/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Engine' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Service' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-AnalysisService' + } + { + properties: { + Description: 'Deploys the diagnostic settings for API Management to stream to a Log Analytics workspace when any API Management which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for API Management to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.ApiManagement/service' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.ApiManagement/service/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'Gateway Requests' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + { + category: 'Capacity' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + { + category: 'EventHub Events' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + { + category: 'Network Status' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'GatewayLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-APIMgmt' + } + { + properties: { + Description: 'This policy enables you to restrict that Application Gateways is always deployed with WAF enabled' + DisplayName: 'Application Gateway should be deployed with WAF enabled' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/applicationGateways' + } + { + field: 'Microsoft.Network/applicationGateways/sku.name' + notequals: 'WAF_v2' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-AppGW-Without-WAF' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Application Gateway to stream to a Log Analytics workspace when any Application Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Application Gateway to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/applicationGateways' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/applicationGateways/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'ApplicationGatewayAccessLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ApplicationGatewayPerformanceLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ApplicationGatewayFirewallLog' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-ApplicationGateway' + } + { + properties: { + Description: 'Deploys the diagnostic settings for App Service Plan to stream to a Log Analytics workspace when any App Service Plan which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for App Service Plan to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Web/serverfarms' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Web/serverfarms/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-WebServerFarm' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Web App to stream to a Log Analytics workspace when any Web App which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for App Service to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Web/sites' + } + { + value: '[field(\'kind\')]' + notContains: 'functionapp' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Web/sites/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'AppServiceAntivirusScanAuditLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceHTTPLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceConsoleLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceHTTPLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceAppLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceFileAuditLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceAuditLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceIPSecAuditLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServicePlatformLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-Website' + } + { + properties: { + Description: 'Deploys the Azure Defender settings in Azure Security Center for the specific services.' + DisplayName: 'Deploy Azure Defender settings in Azure Security Center.' + Mode: 'Indexed' + Parameters: { + pricingTierVMs: { + type: 'String' + metadata: { + displayName: 'pricingTierVMs' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierSqlServers: { + type: 'String' + metadata: { + displayName: 'pricingTierSqlServers' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierAppServices: { + type: 'String' + metadata: { + displayName: 'pricingTierAppServices' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierStorageAccounts: { + type: 'String' + metadata: { + displayName: 'pricingTierStorageAccounts' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierContainerRegistry: { + type: 'String' + metadata: { + displayName: 'pricingTierContainerRegistry' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierKeyVaults: { + type: 'String' + metadata: { + displayName: 'pricingTierKeyVaults' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierKubernetesService: { + type: 'String' + metadata: { + displayName: 'pricingTierKubernetesService' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierDns: { + type: 'String' + metadata: { + displayName: 'pricingTierDns' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierArm: { + type: 'String' + metadata: { + displayName: 'pricingTierArm' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Security Center' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Security/pricings' + deploymentScope: 'subscription' + existenceScope: 'subscription' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/fb1c8493-542b-48eb-b624-b4c8fea62acd' + ] + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Security/pricings/pricingTier' + equals: 'Standard' + } + { + field: 'type' + equals: 'Microsoft.Security/pricings' + } + ] + } + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + pricingTierVMs: { + value: '[parameters(\'pricingTierVMs\')]' + } + pricingTierSqlServers: { + value: '[parameters(\'pricingTierSqlServers\')]' + } + pricingTierAppServices: { + value: '[parameters(\'pricingTierAppServices\')]' + } + pricingTierStorageAccounts: { + value: '[parameters(\'pricingTierStorageAccounts\')]' + } + pricingTierContainerRegistry: { + value: '[parameters(\'pricingTierContainerRegistry\')]' + } + pricingTierKeyVaults: { + value: '[parameters(\'pricingTierKeyVaults\')]' + } + pricingTierKubernetesService: { + value: '[parameters(\'pricingTierKubernetesService\')]' + } + pricingTierDns: { + value: '[parameters(\'pricingTierDns\')]' + } + pricingTierArm: { + value: '[parameters(\'pricingTierArm\')]' + } + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + pricingTierVMs: { + type: 'string' + metadata: { + description: 'pricingTierVMs' + } + } + pricingTierSqlServers: { + type: 'string' + metadata: { + description: 'pricingTierSqlServers' + } + } + pricingTierAppServices: { + type: 'string' + metadata: { + description: 'pricingTierAppServices' + } + } + pricingTierStorageAccounts: { + type: 'string' + metadata: { + description: 'pricingTierStorageAccounts' + } + } + pricingTierContainerRegistry: { + type: 'string' + metadata: { + description: 'ContainerRegistry' + } + } + pricingTierKeyVaults: { + type: 'string' + metadata: { + description: 'KeyVaults' + } + } + pricingTierKubernetesService: { + type: 'string' + metadata: { + description: 'KubernetesService' + } + } + pricingTierDns: { + type: 'string' + metadata: { + description: 'KubernetesService' + } + } + pricingTierArm: { + type: 'string' + metadata: { + description: 'KubernetesService' + } + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'VirtualMachines' + properties: { + pricingTier: '[parameters(\'pricingTierVMs\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'StorageAccounts' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/VirtualMachines\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierStorageAccounts\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'AppServices' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/StorageAccounts\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierAppServices\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'SqlServers' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/AppServices\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierSqlServers\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'KeyVaults' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/SqlServers\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierKeyVaults\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'KubernetesService' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/KeyVaults\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierKubernetesService\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'ContainerRegistry' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/KubernetesService\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierContainerRegistry\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'Dns' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/ContainerRegistry\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierDns\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'Arm' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/Dns\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierArm\')]' + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-ASC-Standard' + } + { + properties: { + Description: 'This policy denies the creation of child resources on the Automation Account' + DisplayName: 'No child resources in Automation Account' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Automation' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + in: [ + 'Microsoft.Automation/automationAccounts/runbooks' + 'Microsoft.Automation/automationAccounts/variables' + 'Microsoft.Automation/automationAccounts/modules' + 'Microsoft.Automation/automationAccounts/credentials' + 'Microsoft.Automation/automationAccounts/connections' + 'Microsoft.Automation/automationAccount/certificates' + ] + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-AA-child-resources' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Automation to stream to a Log Analytics workspace when any Automation which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Automation to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Automation/automationAccounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Automation/automationAccounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + timeGrain: null + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + logs: [ + { + category: 'JobLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'JobStreams' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DscNodeStatus' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-AA' + } + { + properties: { + displayName: 'RDP access from the Internet should be blocked' + description: 'This policy denies any network security rule that allows RDP access from Internet' + mode: 'All' + metadata: { + version: '1.0.0' + category: 'Network' + } + parameters: { + effect: { + type: 'String' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + } + } + policyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/networkSecurityGroups/securityRules' + } + { + allOf: [ + { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/access' + equals: 'Allow' + } + { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/direction' + equals: 'Inbound' + } + { + anyOf: [ + { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange' + equals: '*' + } + { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange' + equals: '3389' + } + { + value: '[if(and(not(empty(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'))), contains(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'),\'-\')), and(lessOrEquals(int(first(split(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'), \'-\'))),3389),greaterOrEquals(int(last(split(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'), \'-\'))),3389)), \'false\')]' + equals: 'true' + } + { + count: { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]' + where: { + value: '[if(and(not(empty(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')))), contains(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')),\'-\')), and(lessOrEquals(int(first(split(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')), \'-\'))),3389),greaterOrEquals(int(last(split(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')), \'-\'))),3389)) , \'false\')]' + equals: 'true' + } + } + greater: 0 + } + { + not: { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]' + notEquals: '*' + } + } + { + not: { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]' + notEquals: '3389' + } + } + ] + } + { + anyOf: [ + { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefix' + equals: '*' + } + { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefix' + equals: 'Internet' + } + { + not: { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefixes[*]' + notEquals: '*' + } + } + { + not: { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefixes[*]' + notEquals: 'Internet' + } + } + ] + } + ] + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-RDP-From-Internet' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Batch to stream to a Log Analytics workspace when any Batch which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Batch to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Batch/batchAccounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Batch/batchAccounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'ServiceLog' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-Batch' + } + { + properties: { + Description: 'Deploys the diagnostic settings for CDN Endpoint to stream to a Log Analytics workspace when any CDN Endpoint which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for CDN Endpoint to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Cdn/profiles/endpoints' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Cdn/profiles/endpoints/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [] + logs: [ + { + category: 'CoreAnalytics' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'fullName\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-CDNEndpoints' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Cognitive Services to stream to a Log Analytics workspace when any Cognitive Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Cognitive Services to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.CognitiveServices/accounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.CognitiveServices/accounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Audit' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'RequestResponse' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Trace' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-CognitiveServices' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Cosmos DB to stream to a Log Analytics workspace when any Cosmos DB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Cosmos DB to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DocumentDB/databaseAccounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DocumentDB/databaseAccounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'Requests' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'DataPlaneRequests' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'MongoRequests' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'QueryRuntimeStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'PartitionKeyStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'PartitionKeyRUConsumption' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ControlPlaneRequests' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'CassandraRequests' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'GremlinRequests' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-CosmosDB' + } + { + properties: { + Description: 'This policy denies that Cosmos database accounts are created with out public network access is disabled.' + DisplayName: 'Public network access should be disabled for CosmosDB' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.DocumentDB/databaseAccounts' + } + { + field: 'Microsoft.DocumentDB/databaseAccounts/publicNetworkAccess' + notequals: 'Disabled' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-CosmosDB' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Databricks to stream to a Log Analytics workspace when any Databricks which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Databricks to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Databricks/workspaces' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Databricks/workspaces/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + logs: [ + { + category: 'dbfs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'clusters' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'accounts' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'jobs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'notebook' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ssh' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'workspace' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'secrets' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'sqlPermissions' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'instancePools' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-Databricks' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Data Factory to stream to a Log Analytics workspace when any Data Factory which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Data Factory to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DataFactory/factories' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DataFactory/factories/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'ActivityRuns' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'PipelineRuns' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'TriggerRuns' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SSISPackageEventMessages' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SSISPackageExecutableStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SSISPackageEventMessageContext' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SSISPackageExecutionComponentPhases' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SSISPackageExecutionDataStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SSISIntegrationRuntimeLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-DataFactory' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Data Lake Analytics to stream to a Log Analytics workspace when any Data Lake Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Data Lake Analytics to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DataLakeAnalytics/accounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DataLakeAnalytics/accounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Audit' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Requests' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-DLAnalytics' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Azure Data Lake Store to stream to a Log Analytics workspace when anyAzure Data Lake Store which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Azure Data Lake Store to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DataLakeStore/accounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DataLakeStore/accounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Audit' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Requests' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-DataLakeStore' + } + { + properties: { + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Blob Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' + DisplayName: 'Deploy DNS Zone Group for Storage-Blob Private Endpoint' + Mode: 'Indexed' + Parameters: { + privateDnsZoneId: { + type: 'String' + metadata: { + displayName: 'privateDnsZoneId' + strongType: 'Microsoft.Network/privateDnsZones' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/privateEndpoints' + } + { + count: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + where: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + equals: 'blob' + } + } + greaterOrEquals: 1 + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + privateDnsZoneId: { + type: 'string' + } + privateEndpointName: { + type: 'string' + } + location: { + type: 'string' + } + } + resources: [ + { + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + apiVersion: '2020-03-01' + location: '[parameters(\'location\')]' + properties: { + privateDnsZoneConfigs: [ + { + name: 'storageBlob-privateDnsZone' + properties: { + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' + } + } + ] + } + } + ] + } + parameters: { + privateDnsZoneId: { + value: '[parameters(\'privateDnsZoneId\')]' + } + privateEndpointName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-DNSZoneGroup-For-Blob-PrivateEndpoint' + } + { + properties: { + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-File Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' + DisplayName: 'Deploy DNS Zone Group for Storage-File Private Endpoint' + Mode: 'Indexed' + Parameters: { + privateDnsZoneId: { + type: 'String' + metadata: { + displayName: 'privateDnsZoneId' + strongType: 'Microsoft.Network/privateDnsZones' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/privateEndpoints' + } + { + count: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + where: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + equals: 'file' + } + } + greaterOrEquals: 1 + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + privateDnsZoneId: { + type: 'string' + } + privateEndpointName: { + type: 'string' + } + location: { + type: 'string' + } + } + resources: [ + { + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + apiVersion: '2020-03-01' + location: '[parameters(\'location\')]' + properties: { + privateDnsZoneConfigs: [ + { + name: 'storageFile-privateDnsZone' + properties: { + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' + } + } + ] + } + } + ] + } + parameters: { + privateDnsZoneId: { + value: '[parameters(\'privateDnsZoneId\')]' + } + privateEndpointName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-DNSZoneGroup-For-File-PrivateEndpoint' + } + { + properties: { + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Key Vault Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' + DisplayName: 'Deploy DNS Zone Group for Key Vault Private Endpoint' + Mode: 'Indexed' + Parameters: { + privateDnsZoneId: { + type: 'String' + metadata: { + displayName: 'privateDnsZoneId' + strongType: 'Microsoft.Network/privateDnsZones' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/privateEndpoints' + } + { + count: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + where: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + equals: 'vault' + } + } + greaterOrEquals: 1 + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + privateDnsZoneId: { + type: 'string' + } + privateEndpointName: { + type: 'string' + } + location: { + type: 'string' + } + } + resources: [ + { + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + apiVersion: '2020-03-01' + location: '[parameters(\'location\')]' + properties: { + privateDnsZoneConfigs: [ + { + name: 'keyVault-privateDnsZone' + properties: { + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' + } + } + ] + } + } + ] + } + parameters: { + privateDnsZoneId: { + value: '[parameters(\'privateDnsZoneId\')]' + } + privateEndpointName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-DNSZoneGroup-For-KeyVault-PrivateEndpoint' + } + { + properties: { + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Queue Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' + DisplayName: 'Deploy DNS Zone Group for Storage-Queue Private Endpoint' + Mode: 'Indexed' + Parameters: { + privateDnsZoneId: { + type: 'String' + metadata: { + displayName: 'privateDnsZoneId' + strongType: 'Microsoft.Network/privateDnsZones' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/privateEndpoints' + } + { + count: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + where: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + equals: 'queue' + } + } + greaterOrEquals: 1 + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + privateDnsZoneId: { + type: 'string' + } + privateEndpointName: { + type: 'string' + } + location: { + type: 'string' + } + } + resources: [ + { + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + apiVersion: '2020-03-01' + location: '[parameters(\'location\')]' + properties: { + privateDnsZoneConfigs: [ + { + name: 'storageQueue-privateDnsZone' + properties: { + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' + } + } + ] + } + } + ] + } + parameters: { + privateDnsZoneId: { + value: '[parameters(\'privateDnsZoneId\')]' + } + privateEndpointName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-DNSZoneGroup-For-Queue-PrivateEndpoint' + } + { + properties: { + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for SQL Private Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' + DisplayName: 'Deploy DNS Zone Group for SQL Private Endpoint' + Mode: 'Indexed' + Parameters: { + privateDnsZoneId: { + type: 'String' + metadata: { + displayName: 'privateDnsZoneId' + strongType: 'Microsoft.Network/privateDnsZones' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/privateEndpoints' + } + { + count: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + where: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + equals: 'sqlServer' + } + } + greaterOrEquals: 1 + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + privateDnsZoneId: { + type: 'string' + } + privateEndpointName: { + type: 'string' + } + location: { + type: 'string' + } + } + resources: [ + { + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + apiVersion: '2020-03-01' + location: '[parameters(\'location\')]' + properties: { + privateDnsZoneConfigs: [ + { + name: 'sqlServer-privateDnsZone' + properties: { + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' + } + } + ] + } + } + ] + } + parameters: { + privateDnsZoneId: { + value: '[parameters(\'privateDnsZoneId\')]' + } + privateEndpointName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-DNSZoneGroup-For-Sql-PrivateEndpoint' + } + { + properties: { + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Table Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' + DisplayName: 'Deploy DNS Zone Group for Storage-Table Private Endpoint' + Mode: 'Indexed' + Parameters: { + privateDnsZoneId: { + type: 'String' + metadata: { + displayName: 'privateDnsZoneId' + strongType: 'Microsoft.Network/privateDnsZones' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/privateEndpoints' + } + { + count: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + where: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + equals: 'table' + } + } + greaterOrEquals: 1 + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + privateDnsZoneId: { + type: 'string' + } + privateEndpointName: { + type: 'string' + } + location: { + type: 'string' + } + } + resources: [ + { + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + apiVersion: '2020-03-01' + location: '[parameters(\'location\')]' + properties: { + privateDnsZoneConfigs: [ + { + name: 'storageTable-privateDnsZone' + properties: { + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' + } + } + ] + } + } + ] + } + parameters: { + privateDnsZoneId: { + value: '[parameters(\'privateDnsZoneId\')]' + } + privateEndpointName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-DNSZoneGroup-For-Table-PrivateEndpoint' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Event Grid subscriptions to stream to a Log Analytics workspace when any Event Grid subscriptions which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Event Grid subscriptions to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.EventGrid/eventSubscriptions' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.EventGrid/eventSubscriptions/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-EventGridSub' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Event Grid Topic to stream to a Log Analytics workspace when any Event Grid Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Event Grid Topic to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.EventGrid/topics' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.EventGrid/topics/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'DeliveryFailures' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'PublishFailures' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-EventGridTopic' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Event Hubs to stream to a Log Analytics workspace when any Event Hubs which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Event Hubs to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.EventHub/namespaces' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.EventHub/namespaces/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'ArchiveLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'OperationalLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AutoScaleLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'KafkaCoordinatorLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'KafkaUserErrorLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'EventHubVNetConnectionEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'CustomerManagedKeyUserLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-EventHub' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Event Grid System Topic to stream to a Log Analytics workspace when any Event Grid System Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Event Grid System Topic to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.EventGrid/systemTopics' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.EventGrid/systemTopics/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'DeliveryFailures' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-EventGridSystemTopic' + } + { + properties: { + Description: 'Deploys the diagnostic settings for ExpressRoute to stream to a Log Analytics workspace when any ExpressRoute which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for ExpressRoute to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/expressRouteCircuits' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/expressRouteCircuits/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'PeeringRouteLog' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-ExpressRoute' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Firewall to stream to a Log Analytics workspace when any Firewall which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Firewall to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/azureFirewalls' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/azureFirewalls/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'AzureFirewallApplicationRule' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AzureFirewallNetworkRule' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AzureFirewallDnsProxy' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-Firewall' + } + { + properties: { + Description: 'Deploys Azure Firewall Manager policy in subscription where the policy is assigned.' + DisplayName: 'Deploy Azure Firewall Manager policy in the subscription' + Mode: 'Indexed' + Parameters: { + fwpolicy: { + type: 'Object' + metadata: { + displayName: 'fwpolicy' + description: 'Object describing Azure Firewall Policy' + } + defaultValue: {} + } + fwPolicyRegion: { + type: 'String' + metadata: { + displayName: 'fwPolicyRegion' + description: 'Select Azure region for Azure Firewall Policy' + strongType: 'location' + } + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/firewallPolicies' + deploymentScope: 'Subscription' + existenceScope: 'ResourceGroup' + resourceGroupName: '[parameters(\'rgName\')]' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' + ] + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + rgName: { + value: '[parameters(\'rgName\')]' + } + fwPolicy: { + value: '[parameters(\'fwPolicy\')]' + } + fwPolicyRegion: { + value: '[parameters(\'fwPolicyRegion\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + rgName: { + type: 'string' + } + fwPolicy: { + type: 'object' + } + fwPolicyRegion: { + type: 'string' + } + } + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2018-05-01' + name: '[parameters(\'rgName\')]' + location: '[deployment().location]' + properties: {} + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + name: 'fwpolicies' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Network/firewallPolicies' + apiVersion: '2019-09-01' + name: '[parameters(\'fwpolicy\').firewallPolicyName]' + location: '[parameters(\'fwpolicy\').location]' + dependsOn: [] + tags: {} + properties: {} + resources: [ + { + type: 'ruleGroups' + apiVersion: '2019-09-01' + name: '[parameters(\'fwpolicy\').ruleGroups.name]' + dependsOn: [ + '[resourceId(\'Microsoft.Network/firewallPolicies\',parameters(\'fwpolicy\').firewallPolicyName)]' + ] + properties: { + priority: '[parameters(\'fwpolicy\').ruleGroups.properties.priority]' + rules: '[parameters(\'fwpolicy\').ruleGroups.properties.rules]' + } + } + ] + } + ] + outputs: {} + } + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-FirewallPolicy' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Front Door to stream to a Log Analytics workspace when any Front Door which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Front Door to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/frontDoors' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/frontDoors/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'FrontdoorAccessLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'FrontdoorWebApplicationFirewallLog' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-FrontDoor' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Azure Function App to stream to a Log Analytics workspace when any function app which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Azure Function App to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Web/sites' + } + { + value: '[field(\'kind\')]' + notEquals: 'app' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Web/sites/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'FunctionAppLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-Function' + } + { + properties: { + Description: 'Deploys the diagnostic settings for HDInsight to stream to a Log Analytics workspace when any HDInsight which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for HDInsight to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.HDInsight/clusters' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.HDInsight/clusters/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-HDInsight' + } + { + properties: { + Description: 'Deploys the diagnostic settings for IoT Hub to stream to a Log Analytics workspace when any IoT Hub which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for IoT Hub to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Devices/IotHubs' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Devices/IotHubs/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Connections' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DeviceTelemetry' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'C2DCommands' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DeviceIdentityOperations' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'FileUploadOperations' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Routes' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'D2CTwinOperations' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'C2DTwinOperations' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'TwinQueries' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'JobsOperations' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DirectMethods' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DistributedTracing' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Configurations' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DeviceStreams' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-iotHub' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Key Vault to stream to a Log Analytics workspace when any Key Vault which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Key Vault to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.KeyVault/vaults' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + name: 'setByPolicy' + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.KeyVault/vaults/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'AuditEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-KeyVault' + } + { + properties: { + Description: 'This policy denies creation of Key Vaults with IP Firewall exposed to all public endpoints' + DisplayName: 'Public network access should be disabled for KeyVault' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Key Vault' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.KeyVault/vaults' + } + { + field: 'Microsoft.KeyVault/vaults/networkAcls.defaultAction' + notequals: 'Deny' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-KeyVault' + } + { + properties: { + Description: 'This policy enables you to ensure when a Key Vault is created with out soft delete enabled it will be added.' + DisplayName: 'KeyVault SoftDelete should be enabled' + Mode: 'Indexed' + Parameters: {} + metadata: { + version: '1.0.0' + category: 'Key Vault' + } + PolicyRule: { + if: { + anyOf: [ + { + allOf: [ + { + field: 'type' + equals: 'Microsoft.KeyVault/vaults' + } + { + field: 'Microsoft.KeyVault/vaults/enableSoftDelete' + notEquals: false + } + ] + } + ] + } + then: { + effect: 'append' + details: [ + { + field: 'Microsoft.KeyVault/vaults/enableSoftDelete' + value: true + } + ] + } + } + } + name: 'Append-KV-SoftDelete' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Load Balancer to stream to a Log Analytics workspace when any Load Balancer which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Load Balancer to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/loadBalancers' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/loadBalancers/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + timeGrain: null + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + logs: [ + { + category: 'LoadBalancerAlertEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'LoadBalancerProbeHealthStatus' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-LoadBalancer' + } + { + properties: { + Description: 'Deploy the configurations to the Log Analytics in the subscription. This includes a list of solutions like update, automation etc and enables the vminsight counters. ' + DisplayName: 'Deploy the configurations to the Log Analytics in the subscription' + Mode: 'Indexed' + Parameters: { + workspaceName: { + type: 'String' + metadata: { + displayName: 'workspaceName' + description: 'Provide name of existing Log Analytics workspace' + } + } + workspaceRegion: { + type: 'String' + metadata: { + displayName: 'workspaceRegion' + description: 'Select region of existing Log Analytics workspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.OperationalInsights/workspaces' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.OperationalInsights/workspaces' + deploymentScope: 'resourceGroup' + existenceScope: 'Subscription' + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + existenceCondition: { + allOf: [ + { + field: 'name' + like: '[parameters(\'workspaceName\')]' + } + { + field: 'location' + equals: '[parameters(\'workspaceRegion\')]' + } + ] + } + deployment: { + properties: { + mode: 'incremental' + parameters: { + workspaceName: { + value: '[parameters(\'workspaceName\')]' + } + workspaceRegion: { + value: '[parameters(\'workspaceRegion\')]' + } + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + workspaceName: { + type: 'string' + } + workspaceRegion: { + type: 'string' + } + } + variables: { + vmInsightsPerfCounters: { + windowsArray: [ + { + armName: 'counter1' + objectName: 'LogicalDisk' + counterName: '% Free Space' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter2' + objectName: 'LogicalDisk' + counterName: 'Avg. Disk sec/Read' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter3' + objectName: 'LogicalDisk' + counterName: 'Avg. Disk sec/Transfer' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter4' + objectName: 'LogicalDisk' + counterName: 'Avg. Disk sec/Write' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter5' + objectName: 'LogicalDisk' + counterName: 'Disk Read Bytes/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter6' + objectName: 'LogicalDisk' + counterName: 'Disk Reads/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter7' + objectName: 'LogicalDisk' + counterName: 'Disk Transfers/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter8' + objectName: 'LogicalDisk' + counterName: 'Disk Write Bytes/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter9' + objectName: 'LogicalDisk' + counterName: 'Disk Writes/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter10' + objectName: 'LogicalDisk' + counterName: 'Free Megabytes' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter11' + objectName: 'Memory' + counterName: 'Available MBytes' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter12' + objectName: 'Network Adapter' + counterName: 'Bytes Received/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter13' + objectName: 'Network Adapter' + counterName: 'Bytes Sent/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter14' + objectName: 'Processor' + counterName: '% Processor Time' + instanceName: '*' + intervalSeconds: 10 + } + ] + linuxDiskArray: [ + { + counterName: '% Used Inodes' + } + { + counterName: 'Free Megabytes' + } + { + counterName: '% Used Space' + } + { + counterName: 'Disk Transfers/sec' + } + { + counterName: 'Disk Reads/sec' + } + { + counterName: 'Disk writes/sec' + } + ] + linuxDiskObject: { + armResourceName: 'Disk' + objectName: 'Logical Disk' + instanceName: '*' + intervalSeconds: 10 + } + linuxMemoryArray: [ + { + counterName: 'Available MBytes Memory' + } + ] + linuxMemoryObject: { + armResourceName: 'Memory' + objectName: 'Memory' + instanceName: '*' + intervalSeconds: 10 + } + linuxNetworkArray: [ + { + counterName: 'Total Bytes Received' + } + { + counterName: 'Total Bytes Transmitted' + } + ] + linuxNetworkObject: { + armResourceName: 'Network' + objectName: 'Network' + instanceName: '*' + intervalSeconds: 10 + } + linuxCpuArray: [ + { + counterName: '% Processor Time' + } + ] + linuxCpuObject: { + armResourceName: 'Processor' + objectName: 'Processor' + instanceName: '*' + intervalSeconds: 10 + } + } + batch1: { + solutions: [ + { + name: '[concat(\'Security\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'Security' + } + { + name: '[concat(\'AgentHealthAssessment\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'AgentHealthAssessment' + } + { + name: '[concat(\'ChangeTracking\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'ChangeTracking' + } + { + name: '[concat(\'Updates\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'Updates' + } + { + name: '[concat(\'AzureActivity\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'AzureActivity' + } + { + name: '[concat(\'AzureAutomation\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'AzureAutomation' + } + { + name: '[concat(\'ADAssessment\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'ADAssessment' + } + { + name: '[concat(\'SQLAssessment\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'SQLAssessment' + } + { + name: '[concat(\'VMInsights\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'VMInsights' + } + { + name: '[concat(\'ServiceMap\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'ServiceMap' + } + { + name: '[concat(\'SecurityInsights\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'SecurityInsights' + } + ] + } + } + resources: [ + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationalInsights/workspaces/datasources' + name: '[concat(parameters(\'workspaceName\'), \'/LinuxPerfCollection\')]' + kind: 'LinuxPerformanceCollection' + properties: { + state: 'Enabled' + } + } + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationalInsights/workspaces/dataSources' + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxDiskObject.armResourceName)]' + kind: 'LinuxPerformanceObject' + properties: { + performanceCounters: '[variables(\'vmInsightsPerfCounters\').linuxDiskArray]' + objectName: '[variables(\'vmInsightsPerfCounters\').linuxDiskObject.objectName]' + instanceName: '[variables(\'vmInsightsPerfCounters\').linuxDiskObject.instanceName]' + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').linuxDiskObject.intervalSeconds]' + } + } + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationalInsights/workspaces/dataSources' + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxMemoryObject.armResourceName)]' + kind: 'LinuxPerformanceObject' + properties: { + performanceCounters: '[variables(\'vmInsightsPerfCounters\').linuxMemoryArray]' + objectName: '[variables(\'vmInsightsPerfCounters\').linuxMemoryObject.objectName]' + instanceName: '[variables(\'vmInsightsPerfCounters\').linuxMemoryObject.instanceName]' + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').linuxMemoryObject.intervalSeconds]' + } + } + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationalInsights/workspaces/dataSources' + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxCpuObject.armResourceName)]' + kind: 'LinuxPerformanceObject' + properties: { + performanceCounters: '[variables(\'vmInsightsPerfCounters\').linuxCpuArray]' + objectName: '[variables(\'vmInsightsPerfCounters\').linuxCpuObject.objectName]' + instanceName: '[variables(\'vmInsightsPerfCounters\').linuxCpuObject.instanceName]' + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').linuxCpuObject.intervalSeconds]' + } + } + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationalInsights/workspaces/dataSources' + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxNetworkObject.armResourceName)]' + kind: 'LinuxPerformanceObject' + properties: { + performanceCounters: '[variables(\'vmInsightsPerfCounters\').linuxNetworkArray]' + objectName: '[variables(\'vmInsightsPerfCounters\').linuxNetworkObject.objectName]' + instanceName: '[variables(\'vmInsightsPerfCounters\').linuxNetworkObject.instanceName]' + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').linuxNetworkObject.intervalSeconds]' + } + } + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationalInsights/workspaces/dataSources' + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].armName)]' + kind: 'WindowsPerformanceCounter' + copy: { + name: 'counterCopy' + count: '[length(variables(\'vmInsightsPerfCounters\').windowsArray)]' + } + properties: { + objectName: '[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].objectName]' + instanceName: '[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].instanceName]' + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].intervalSeconds]' + counterName: '[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].counterName]' + } + } + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationsManagement/solutions' + name: '[concat(variables(\'batch1\').solutions[copyIndex()].Name)]' + location: '[parameters(\'workspaceRegion\')]' + copy: { + name: 'solutionCopy' + count: '[length(variables(\'batch1\').solutions)]' + } + properties: { + workspaceResourceId: '[resourceId(\'Microsoft.OperationalInsights/workspaces/\', parameters(\'workspaceName\'))]' + } + plan: { + name: '[variables(\'batch1\').solutions[copyIndex()].name]' + product: '[concat(\'OMSGallery/\', variables(\'batch1\').solutions[copyIndex()].marketplaceName)]' + promotionCode: '' + publisher: 'Microsoft' + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-LA-Config' + } + { + properties: { + Description: 'Deploys Log Analytics and Automation account to the subscription where the policy is assigned.' + DisplayName: 'Deploy the Log Analytics in the subscription' + Mode: 'Indexed' + Parameters: { + workspaceName: { + type: 'String' + metadata: { + displayName: 'workspaceName' + description: 'Provide name for log analytics workspace' + } + } + automationAccountName: { + type: 'String' + metadata: { + displayName: 'automationAccountName' + description: 'Provide name for automation account' + } + } + workspaceRegion: { + type: 'String' + metadata: { + displayName: 'workspaceRegion' + description: 'Select Azure region for Log Analytics' + } + } + automationRegion: { + type: 'String' + metadata: { + displayName: 'automationRegion' + description: 'Select Azure region for Automation account' + } + } + retentionInDays: { + type: 'string' + defaultValue: '30' + metadata: { + displayName: 'Data retention' + description: 'Select data retention (days) for Log Analytics.' + } + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.OperationalInsights/workspaces' + deploymentScope: 'Subscription' + existenceScope: 'Subscription' + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + existenceCondition: { + allOf: [ + { + field: 'name' + like: '[parameters(\'workspaceName\')]' + } + ] + } + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + rgName: { + value: '[parameters(\'rgName\')]' + } + retentionInDays: { + value: '[parameters(\'retentionInDays\')]' + } + workspaceName: { + value: '[parameters(\'workspaceName\')]' + } + workspaceRegion: { + value: '[parameters(\'workspaceRegion\')]' + } + automationAccountName: { + value: '[parameters(\'automationAccountName\')]' + } + automationRegion: { + value: '[parameters(\'automationRegion\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + rgName: { + type: 'string' + } + workspaceName: { + type: 'string' + } + workspaceRegion: { + type: 'string' + } + automationAccountName: { + type: 'string' + } + automationRegion: { + type: 'string' + } + retentionInDays: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2018-05-01' + name: '[parameters(\'rgName\')]' + location: '[deployment().location]' + properties: {} + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + name: 'log-analytics' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + apiversion: '2015-10-31' + location: '[parameters(\'AutomationRegion\')]' + name: '[parameters(\'AutomationAccountName\')]' + type: 'Microsoft.Automation/automationAccounts' + comments: 'Automation account for ' + properties: { + sku: { + name: 'OMS' + } + } + } + { + apiVersion: '2017-03-15-preview' + location: '[parameters(\'workspaceRegion\')]' + name: '[parameters(\'workspaceName\')]' + type: 'Microsoft.OperationalInsights/workspaces' + properties: { + sku: { + name: 'pernode' + } + enableLogAccessUsingOnlyResourcePermissions: true + retentionInDays: '[int(parameters(\'retentionInDays\'))]' + } + resources: [ + { + name: 'Automation' + type: 'linkedServices' + apiVersion: '2015-11-01-preview' + dependsOn: [ + '[resourceId(\'Microsoft.OperationalInsights/workspaces/\', parameters(\'workspaceName\'))]' + '[resourceId(\'Microsoft.Automation/automationAccounts/\', parameters(\'AutomationAccountName\'))]' + ] + properties: { + resourceId: '[concat(subscription().id, \'/resourceGroups/\', parameters(\'rgName\'), \'/providers/Microsoft.Automation/automationAccounts/\', parameters(\'AutomationAccountName\'))]' + } + } + ] + } + ] + outputs: {} + } + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-Log-Analytics' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Logic Apps integration service environment to stream to a Log Analytics workspace when any Logic Apps integration service environment which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Logic Apps integration service environment to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Logic/integrationAccounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Logic/integrationAccounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [] + logs: [ + { + category: 'IntegrationAccountTrackingEvents' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-LogicAppsISE' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Logic Apps Workflow runtimeto stream to a Log Analytics workspace when any Logic Apps Workflow runtime which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Logic Apps Workflow runtime to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Logic/workflows' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Logic/workflows/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'WorkflowRuntime' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-LogicAppsWF' + } + { + properties: { + Description: 'Deploys the diagnostic settings for MariaDB to stream to a Log Analytics workspace when any MariaDB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for MariaDB to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DBforMariaDB/servers' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DBforMariaDB/servers/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'MySqlSlowLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'MySqlAuditLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-MariaDB' + } + { + properties: { + Description: 'This policy denies the creation of Maria DB accounts with exposed public endpoints' + DisplayName: 'Public network access should be disabled for MariaDB' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.DBforMariaDB/servers' + } + { + field: 'Microsoft.DBforMariaDB/servers/publicNetworkAccess' + notequals: 'Disabled' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-MariaDB' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Machine Learning workspace to stream to a Log Analytics workspace when any Machine Learning workspace which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Machine Learning workspace to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.MachineLearningServices/workspaces' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.MachineLearningServices/workspaces/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'Run' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + { + category: 'Model' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: true + } + } + { + category: 'Quota' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + { + category: 'Resource' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'AmlComputeClusterEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AmlComputeClusterNodeEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AmlComputeJobEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AmlComputeCpuGpuUtilization' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AmlRunStatusChangedEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-MlWorkspace' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Database for MySQL to stream to a Log Analytics workspace when any Database for MySQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Database for MySQL to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DBforMySQL/servers' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DBforMySQL/servers/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'MySqlSlowLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'MySqlAuditLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-MySQL' + } + { + properties: { + Description: 'This policy denies creation of MySql DB accounts with exposed public endpoints' + DisplayName: 'Public network access should be disabled for MySQL' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.DBforMySQL/servers' + } + { + field: 'Microsoft.DBforMySQL/servers/publicNetworkAccess' + notequals: 'Disabled' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-MySQL' + } + { + properties: { + Description: 'Deploys an Azure DDoS Protection Standard plan' + DisplayName: 'Deploy an Azure DDoS Protection Standard plan' + Mode: 'Indexed' + Parameters: { + ddosName: { + type: 'String' + metadata: { + displayName: 'ddosName' + description: 'Name of the Virtual WAN' + } + } + ddosRegion: { + type: 'String' + metadata: { + displayName: 'ddosRegion' + description: 'Select Azure region for Virtual WAN' + strongType: 'location' + } + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/ddosProtectionPlans' + deploymentScope: 'Subscription' + existenceScope: 'ResourceGroup' + resourceGroupName: '[parameters(\'rgName\')]' + name: '[parameters(\'ddosName\')]' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + rgName: { + value: '[parameters(\'rgName\')]' + } + ddosname: { + value: '[parameters(\'ddosname\')]' + } + ddosregion: { + value: '[parameters(\'ddosRegion\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + rgName: { + type: 'string' + } + ddosname: { + type: 'string' + } + ddosRegion: { + type: 'string' + } + } + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2018-05-01' + name: '[parameters(\'rgName\')]' + location: '[deployment().location]' + properties: {} + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + name: 'ddosprotection' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: {} + resources: [ + { + type: 'Microsoft.Network/ddosProtectionPlans' + apiVersion: '2019-12-01' + name: '[parameters(\'ddosName\')]' + location: '[parameters(\'ddosRegion\')]' + properties: {} + } + ] + outputs: {} + } + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-DDoSProtection' + } + { + properties: { + Description: 'This policy denies the creation of vNet Peerings under the assigned scope.' + DisplayName: 'Deny vNet peering ' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-VNet-Peering' + } + { + properties: { + Description: 'This policy denies the creation of a private DNS in the current scope, used in combination with policies that create centralized private DNS in connectivity subscription' + DisplayName: 'Deny the creation of private DNS' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/privateDnsZones' + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-Private-DNS-Zones' + } + { + properties: { + Description: 'This policy denies creation of Public IPs under the assigned scope.' + DisplayName: 'Deny the creation of public IP' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/publicIPAddresses' + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicIP' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Network Interfaces to stream to a Log Analytics workspace when any Network Interfaces which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Network Interfaces to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/networkInterfaces' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/networkInterfaces/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + timeGrain: null + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-NIC' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Public IP addresses to stream to a Log Analytics workspace when any Public IP addresses which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Public IP addresses to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/publicIPAddresses' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/publicIPAddresses/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + timeGrain: null + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + logs: [ + { + category: 'DDoSProtectionNotifications' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DDoSMitigationFlowLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DDoSMitigationReports' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-PublicIP' + } + { + properties: { + Description: 'Deploys NSG flow logs and traffic analytics to a storageaccountid with a specfied retention period.' + DisplayName: 'Deploys NSG flow logs and traffic analytics' + Mode: 'Indexed' + Parameters: { + retention: { + type: 'Integer' + metadata: { + displayName: 'Retention' + } + defaultValue: 5 + } + storageAccountResourceId: { + type: 'String' + metadata: { + displayName: 'Storage Account Resource Id' + strongType: 'Microsoft.Storage/storageAccounts' + } + } + trafficAnalyticsInterval: { + type: 'Integer' + metadata: { + displayName: 'Traffic Analytics processing interval mins (10/60)' + } + defaultValue: 60 + } + flowAnalyticsEnabled: { + type: 'Boolean' + metadata: { + displayName: 'Enable Traffic Analytics' + } + defaultValue: false + } + logAnalytics: { + type: 'String' + metadata: { + strongType: 'omsWorkspace' + displayName: 'Resource ID of Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + } + defaultValue: '' + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/networkSecurityGroups' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/networkWatchers/flowLogs' + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + resourceGroupName: 'NetworkWatcherRG' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Network/networkWatchers/flowLogs/enabled' + equals: 'true' + } + { + field: 'Microsoft.Network/networkWatchers/flowLogs/flowAnalyticsConfiguration.networkWatcherFlowAnalyticsConfiguration.enabled' + equals: '[parameters(\'flowAnalyticsEnabled\')]' + } + ] + } + deployment: { + properties: { + mode: 'incremental' + parameters: { + networkSecurityGroupName: { + value: '[field(\'name\')]' + } + resourceGroupName: { + value: '[resourceGroup().name]' + } + location: { + value: '[field(\'location\')]' + } + storageAccountResourceId: { + value: '[parameters(\'storageAccountResourceId\')]' + } + retention: { + value: '[parameters(\'retention\')]' + } + flowAnalyticsEnabled: { + value: '[parameters(\'flowAnalyticsEnabled\')]' + } + trafficAnalyticsInterval: { + value: '[parameters(\'trafficAnalyticsInterval\')]' + } + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + networkSecurityGroupName: { + type: 'string' + } + resourceGroupName: { + type: 'string' + } + location: { + type: 'string' + } + storageAccountResourceId: { + type: 'string' + } + retention: { + type: 'int' + } + flowAnalyticsEnabled: { + type: 'bool' + } + trafficAnalyticsInterval: { + type: 'int' + } + logAnalytics: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/networkWatchers/flowLogs' + apiVersion: '2020-05-01' + name: '[take(concat(\'NetworkWatcher_\', toLower(parameters(\'location\')), \'/\', parameters(\'networkSecurityGroupName\'), \'-\', parameters(\'resourceGroupName\'), \'-flowlog\' ), 80)]' + location: '[parameters(\'location\')]' + properties: { + targetResourceId: '[resourceId(parameters(\'resourceGroupName\'), \'Microsoft.Network/networkSecurityGroups\', parameters(\'networkSecurityGroupName\'))]' + storageId: '[parameters(\'storageAccountResourceId\')]' + enabled: true + retentionPolicy: { + enabled: true + days: '[parameters(\'retention\')]' + } + format: { + type: 'JSON' + version: 2 + } + flowAnalyticsConfiguration: { + networkWatcherFlowAnalyticsConfiguration: { + enabled: '[bool(parameters(\'flowAnalyticsEnabled\'))]' + trafficAnalyticsInterval: '[parameters(\'trafficAnalyticsInterval\')]' + workspaceId: '[if(not(empty(parameters(\'logAnalytics\'))), reference(parameters(\'logAnalytics\'), \'2020-03-01-preview\', \'Full\').properties.customerId, json(\'null\')) ]' + workspaceRegion: '[if(not(empty(parameters(\'logAnalytics\'))), reference(parameters(\'logAnalytics\'), \'2020-03-01-preview\', \'Full\').location, json(\'null\')) ]' + workspaceResourceId: '[if(not(empty(parameters(\'logAnalytics\'))), parameters(\'logAnalytics\'), json(\'null\'))]' + } + } + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-Nsg-FlowLogs' + } + { + properties: { + Description: 'This policy denies the creation of a subsnet with out an Network Security Group. NSG help to protect traffic across subnet-level.' + DisplayName: 'Subnets should have a Network Security Group ' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/virtualNetworks/subnets' + } + { + field: 'Microsoft.Network/virtualNetworks/subnets/networkSecurityGroup.id' + exists: 'false' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-Subnet-Without-Nsg' + } + { + properties: { + displayName: 'Subnets should have a User Defined Route' + policyType: 'Custom' + mode: 'Indexed' + description: 'This policy denies the creation of a subsnet with out a User Defined Route.' + metadata: { + version: '1.0.0' + category: 'Network' + } + parameters: { + effect: { + type: 'String' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + } + } + policyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/virtualNetworks/subnets' + } + { + field: 'Microsoft.Network/virtualNetworks/subnets/routeTable.id' + exists: 'false' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-Subnet-Without-Udr' + } + { + Properties: { + Description: 'This policy denies the creation of vNet Peerings outside of the same subscriptions under the assigned scope.' + DisplayName: 'Deny vNet peering cross subscription.' + Mode: 'Indexed' + metadata: { + version: '1.0.0.0' + category: 'Network' + } + Parameters: { + effect: { + type: 'String' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + } + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' + } + { + field: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings/remoteVirtualNetwork.id' + notcontains: '[subscription().id]' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-VNET-Peer-Cross-Sub' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Network Security Groups to stream to a Log Analytics workspace when any Network Security Groups which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Network Security Groups to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/networkSecurityGroups' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/networkSecurityGroups/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [] + logs: [ + { + category: 'NetworkSecurityGroupEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'NetworkSecurityGroupRuleCounter' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-NetworkSecurityGroups' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Database for PostgreSQL to stream to a Log Analytics workspace when any Database for PostgreSQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Database for PostgreSQL to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DBforPostgreSQL/servers' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DBforPostgreSQL/servers/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'PostgreSQLLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'QueryStoreRuntimeStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'QueryStoreWaitStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-PostgreSQL' + } + { + properties: { + Description: 'This policy denies creation of Postgre SQL DB accounts with exposed public endpoints' + DisplayName: 'Public network access should be disabled for PostgreSql' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.DBforPostgreSQL/servers' + } + { + field: 'Microsoft.DBforPostgreSQL/servers/publicNetworkAccess' + notequals: 'Disabled' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-PostgreSql' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Power BI Embedded to stream to a Log Analytics workspace when any Power BI Embedded which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Power BI Embedded to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.PowerBIDedicated/capacities' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.PowerBIDedicated/capacities/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Engine' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-PowerBIEmbedded' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Recovery Services vaults to stream to a Log Analytics workspace when any Recovery Services vaults which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Recovery Services vaults to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.RecoveryServices/vaults' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allof: [ + { + count: { + field: 'Microsoft.Insights/diagnosticSettings/logs[*]' + where: { + allof: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs[*].Category' + in: [ + 'CoreAzureBackup' + 'AddonAzureBackupJobs' + 'AddonAzureBackupAlerts' + 'AddonAzureBackupPolicy' + 'AddonAzureBackupStorage' + 'AddonAzureBackupProtectedInstance' + 'AzureBackupReport' + ] + } + { + field: 'Microsoft.Insights/diagnosticSettings/logs[*].Enabled' + equals: 'True' + } + ] + } + } + Equals: 7 + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + { + field: 'Microsoft.Insights/diagnosticSettings/logAnalyticsDestinationType' + equals: 'Dedicated' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.RecoveryServices/vaults/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + logAnalyticsDestinationType: 'Dedicated' + metrics: [] + logs: [ + { + category: 'CoreAzureBackup' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AddonAzureBackupAlerts' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AddonAzureBackupJobs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AddonAzureBackupPolicy' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AddonAzureBackupProtectedInstance' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AddonAzureBackupStorage' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AzureBackupReport' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-RecoveryVault' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Redis Cache to stream to a Log Analytics workspace when any Redis Cache which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Redis Cache to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Cache/redis' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Cache/redis/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-RedisCache' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Relay to stream to a Log Analytics workspace when any Relay which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Relay to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Relay/namespaces' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Relay/namespaces/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'HybridConnectionsEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-Relay' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Search Services to stream to a Log Analytics workspace when any Search Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Search Services to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Search/searchServices' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Search/searchServices/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'OperationLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-SearchServices' + } + { + properties: { + Description: 'Deploys the diagnostic settings for ServiceBus to stream to a Log Analytics workspace when any ServiceBus which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Service Bus namespaces to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.ServiceBus/namespaces' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.ServiceBus/namespaces/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'OperationalLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-ServiceBus' + } + { + properties: { + Description: 'Deploys the diagnostic settings for SignalR to stream to a Log Analytics workspace when any SignalR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for SignalR to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.SignalRService/SignalR' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.SignalRService/SignalR/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'AllLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-SignalR' + } + { + properties: { + Description: 'Deploy auditing settings to SQL Database when it not exist in the deployment' + DisplayName: 'Deploy SQL database auditing settings' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/servers/databases' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Sql/servers/databases/auditingSettings' + name: 'default' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Sql/servers/databases/auditingSettings/state' + equals: 'enabled' + } + { + field: 'Microsoft.Sql/servers/databases/auditingSettings/isAzureMonitorTargetEnabled' + equals: 'true' + } + ] + } + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + location: { + type: 'string' + } + sqlServerName: { + type: 'string' + } + sqlServerDataBaseName: { + type: 'string' + } + } + variables: {} + resources: [ + { + name: '[concat( parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/default\')]' + type: 'Microsoft.Sql/servers/databases/auditingSettings' + apiVersion: '2017-03-01-preview' + properties: { + state: 'enabled' + auditActionsAndGroups: [ + 'BATCH_COMPLETED_GROUP' + 'DATABASE_OBJECT_CHANGE_GROUP' + 'SCHEMA_OBJECT_CHANGE_GROUP' + 'BACKUP_RESTORE_GROUP' + 'APPLICATION_ROLE_CHANGE_PASSWORD_GROUP' + 'DATABASE_PRINCIPAL_CHANGE_GROUP' + 'DATABASE_PRINCIPAL_IMPERSONATION_GROUP' + 'DATABASE_ROLE_MEMBER_CHANGE_GROUP' + 'USER_CHANGE_PASSWORD_GROUP' + 'DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP' + 'DATABASE_OBJECT_PERMISSION_CHANGE_GROUP' + 'DATABASE_PERMISSION_CHANGE_GROUP' + 'SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP' + 'SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP' + 'FAILED_DATABASE_AUTHENTICATION_GROUP' + ] + isAzureMonitorTargetEnabled: true + } + } + ] + outputs: {} + } + parameters: { + location: { + value: '[field(\'location\')]' + } + sqlServerName: { + value: '[first(split(field(\'fullname\'),\'/\'))]' + } + sqlServerDataBaseName: { + value: '[field(\'name\')]' + } + } + } + } + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3' + ] + } + } + } + } + name: 'Deploy-Sql-AuditingSettings' + } + { + properties: { + Description: 'Deploy the Transparent Data Encryption when it is not enabled in the deployment' + DisplayName: 'Deploy SQL Database Transparent Data Encryption ' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/servers/databases' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Sql/servers/databases/transparentDataEncryption' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Sql/transparentDataEncryption.status' + equals: 'Enabled' + } + ] + } + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + location: { + type: 'string' + } + sqlServerName: { + type: 'string' + } + sqlServerDataBaseName: { + type: 'string' + } + } + variables: {} + resources: [ + { + name: '[concat( parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/current\')]' + type: 'Microsoft.Sql/servers/databases/transparentDataEncryption' + apiVersion: '2014-04-01' + properties: { + status: 'Enabled' + } + } + ] + outputs: {} + } + parameters: { + location: { + value: '[field(\'location\')]' + } + sqlServerName: { + value: '[first(split(field(\'fullname\'),\'/\'))]' + } + sqlServerDataBaseName: { + value: '[field(\'name\')]' + } + } + } + } + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3' + ] + } + } + } + } + name: 'Deploy-Sql-Tde' + } + { + properties: { + Description: 'Deploy the security Alert Policies configuration with email admin accounts when it not exist in current configuration' + DisplayName: 'Deploy SQL Database security Alert Policies configuration with email admin accounts' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/servers/databases' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Sql/servers/databases/securityAlertPolicies' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Sql/servers/databases/securityAlertPolicies/state' + equals: 'Enabled' + } + ] + } + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + location: { + type: 'string' + } + sqlServerName: { + type: 'string' + } + sqlServerDataBaseName: { + type: 'string' + } + } + variables: {} + resources: [ + { + name: '[concat(parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/default\')]' + type: 'Microsoft.Sql/servers/databases/securityAlertPolicies' + apiVersion: '2018-06-01-preview' + properties: { + state: 'Enabled' + disabledAlerts: [ + '' + ] + emailAddresses: [ + 'admin@contoso.com' + ] + emailAccountAdmins: true + storageEndpoint: null + storageAccountAccessKey: '' + retentionDays: 0 + } + } + ] + outputs: {} + } + parameters: { + location: { + value: '[field(\'location\')]' + } + sqlServerName: { + value: '[first(split(field(\'fullname\'),\'/\'))]' + } + sqlServerDataBaseName: { + value: '[field(\'name\')]' + } + } + } + } + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3' + ] + } + } + } + } + name: 'Deploy-Sql-SecurityAlertPolicies' + } + { + properties: { + Description: 'Deploy SQL Database vulnerability Assessments when it not exist in the deployment. To the specific storage account in the parameters' + DisplayName: 'Deploy SQL Database vulnerability Assessments' + Mode: 'Indexed' + Parameters: { + vulnerabilityAssessmentsEmail: { + type: 'String' + metadata: { + description: 'The email address to send alerts' + displayName: 'The email address to send alerts' + } + } + vulnerabilityAssessmentsStorageID: { + type: 'String' + metadata: { + description: 'The storage account to store assessments' + displayName: 'The storage account to store assessments' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/servers/databases' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Sql/servers/databases/vulnerabilityAssessments' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Sql/servers/databases/vulnerabilityAssessments/recurringScans.emails' + equals: '[parameters(\'vulnerabilityAssessmentsEmail\')]' + } + { + field: 'Microsoft.Sql/servers/databases/vulnerabilityAssessments/recurringScans.isEnabled' + equals: true + } + ] + } + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + location: { + type: 'string' + } + sqlServerName: { + type: 'string' + } + sqlServerDataBaseName: { + type: 'string' + } + vulnerabilityAssessmentsEmail: { + type: 'string' + } + vulnerabilityAssessmentsStorageID: { + type: 'string' + } + } + variables: {} + resources: [ + { + name: '[concat(parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/default\')]' + type: 'Microsoft.Sql/servers/databases/vulnerabilityAssessments' + apiVersion: '2017-03-01-preview' + properties: { + storageContainerPath: '[concat(\'https://\', last( split(parameters(\'vulnerabilityAssessmentsStorageID\') , \'/\') ) , \'.blob.core.windows.net/vulneraabilitylogs\')]' + storageAccountAccessKey: '[listkeys(parameters(\'vulnerabilityAssessmentsStorageID\'), providers(\'Microsoft.Storage\', \'storageAccounts\').apiVersions[0]).keys[0].value]' + recurringScans: { + isEnabled: true + emailSubscriptionAdmins: false + emails: [ + '[parameters(\'vulnerabilityAssessmentsEmail\')]' + ] + } + } + } + ] + outputs: {} + } + parameters: { + location: { + value: '[field(\'location\')]' + } + sqlServerName: { + value: '[first(split(field(\'fullname\'),\'/\'))]' + } + sqlServerDataBaseName: { + value: '[field(\'name\')]' + } + vulnerabilityAssessmentsEmail: { + value: '[parameters(\'vulnerabilityAssessmentsEmail\')]' + } + vulnerabilityAssessmentsStorageID: { + value: '[parameters(\'vulnerabilityAssessmentsStorageID\')]' + } + } + } + } + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3' + '/providers/Microsoft.Authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + ] + } + } + } + } + name: 'Deploy-Sql-vulnerabilityAssessments' + } + { + properties: { + Description: 'Deploys the diagnostic settings for SQL Databases to stream to a Log Analytics workspace when any SQL Databases which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for SQL Databases to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/servers/databases' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Sql/servers/databases/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'SQLInsights' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AutomaticTuning' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DevOpsOperationsAudit' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'QueryStoreRuntimeStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'QueryStoreWaitStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Errors' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DatabaseWaitStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Timeouts' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Blocks' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Deadlocks' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SQLSecurityAuditEvents' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'fullName\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-SQLDBs' + } + { + properties: { + Description: 'Deploys the diagnostic settings for SQL Elastic Pools to stream to a Log Analytics workspace when any SQL Elastic Pools which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for SQL Elastic Pools to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/servers/elasticPools' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Sql/servers/elasticPools/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'fullName\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-SQLElasticPools' + } + { + properties: { + Description: 'Deploys the diagnostic settings for SQL Managed Instances to stream to a Log Analytics workspace when any SQL Managed Instances which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for SQL Managed Instances to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/managedInstances' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Sql/managedInstances/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + logs: [ + { + category: 'ResourceUsageStats' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SQLSecurityAuditEvents' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DevOpsOperationsAudit' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-SQLMI' + } + { + properties: { + Description: 'This policy denies creation of Sql servers with exposed public endpoints' + DisplayName: 'Public network access on Azure SQL Database should be disabled' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Sql/servers' + } + { + field: 'Microsoft.Sql/servers/publicNetworkAccess' + notequals: 'Disabled' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-Sql' + } + { + properties: { + Description: 'This policy denies creation of storage accounts with IP Firewall exposed to all public endpoints' + DisplayName: 'Public network access onStorage accounts should be disabled' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Storage' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Storage/storageAccounts' + } + { + field: 'Microsoft.Storage/storageAccounts/networkAcls.defaultAction' + notequals: 'Deny' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-Storage' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Stream Analytics to stream to a Log Analytics workspace when any Stream Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Stream Analytics to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.StreamAnalytics/streamingjobs' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.StreamAnalytics/streamingjobs/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Execution' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Authoring' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-StreamAnalytics' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Time Series Insights to stream to a Log Analytics workspace when any Time Series Insights which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Time Series Insights to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.TimeSeriesInsights/environments' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.TimeSeriesInsights/environments/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Ingress' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Management' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-TimeSeriesInsights' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Traffic Manager to stream to a Log Analytics workspace when any Traffic Manager which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Traffic Manager to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/trafficManagerProfiles' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/trafficManagerProfiles/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'ProbeHealthStatusEvents' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-TrafficManager' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Virtual Machines to stream to a Log Analytics workspace when any Virtual Machines which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Virtual Machines to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Compute/virtualMachines' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Compute/virtualMachines/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-VM' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Virtual Network to stream to a Log Analytics workspace when any Virtual Network which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Virtual Network to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/virtualNetworks' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualNetworks/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + logs: [ + { + category: 'VMProtectionAlerts' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-VirtualNetwork' + } + { + properties: { + Description: 'Deploys Virtual Network to be used as hub virtual network in desired region in the subscription where this policy is assigned.' + DisplayName: 'Deploy Virtual Network to be used as hub virtual network in desired region' + Mode: 'Indexed' + Parameters: { + hubName: { + type: 'String' + metadata: { + displayName: 'hubName' + description: 'Name of the Hub' + } + } + HUB: { + type: 'Object' + metadata: { + displayName: 'HUB' + description: 'Object describing HUB' + } + } + vpngw: { + type: 'Object' + metadata: { + displayName: 'vpngw' + description: 'Object describing VPN gateway' + } + defaultValue: {} + } + ergw: { + type: 'Object' + metadata: { + displayName: 'ergw' + description: 'Object describing ExpressRoute gateway' + } + defaultValue: {} + } + azfw: { + type: 'Object' + metadata: { + displayName: 'ergw' + description: 'Object describing ExpressRoute gateway' + } + defaultValue: {} + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/virtualNetworks' + name: '[parameters(\'hubName\')]' + deploymentScope: 'Subscription' + existenceScope: 'ResourceGroup' + ResourceGroupName: '[parameters(\'rgName\')]' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + rgName: { + value: '[parameters(\'rgName\')]' + } + hubName: { + value: '[parameters(\'hubName\')]' + } + HUB: { + value: '[parameters(\'HUB\')]' + } + vpngw: { + value: '[parameters(\'vpngw\')]' + } + ergw: { + value: '[parameters(\'ergw\')]' + } + azfw: { + value: '[parameters(\'azfw\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + hubName: { + type: 'string' + metadata: { + description: 'Name of the HUB' + } + } + HUB: { + type: 'object' + metadata: { + description: 'Object describing HUB' + } + } + vpngw: { + type: 'object' + defaultValue: {} + metadata: { + description: 'Object describing VPN gateway' + } + } + ergw: { + type: 'object' + defaultValue: {} + metadata: { + description: 'Object describing ExpressRoute gateway' + } + } + azfw: { + type: 'object' + defaultValue: {} + metadata: { + description: 'Object describing the Azure Firewall' + } + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2020-06-01' + name: '[parameters(\'rgName\')]' + location: '[deployment().location]' + properties: {} + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https: //schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + name: '[parameters(\'hubName\')]' + type: 'Microsoft.Network/virtualNetworks' + apiVersion: '2020-04-01' + location: '[parameters(\'HUB\').location]' + properties: { + addressSpace: { + addressPrefixes: [ + '[parameters(\'HUB\').addressPrefix]' + ] + } + subnets: [ + { + name: 'Infrastructure' + properties: { + addressPrefix: '[if(not(empty(parameters(\'HUB\').subnets.infra)),parameters(\'HUB\').subnets.infra, json(\'null\'))]' + } + } + { + name: 'AzureFirewallSubnet' + properties: { + addressPrefix: '[if(not(empty(parameters(\'HUB\').subnets.azfw)),parameters(\'HUB\').subnets.azfw, json(\'null\'))]' + } + } + { + name: 'GatewaySubnet' + properties: { + addressPrefix: '[if(not(empty(parameters(\'HUB\').subnets.gw)),parameters(\'HUB\').subnets.gw, json(\'null\'))]' + } + } + ] + } + } + ] + } + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + condition: '[greater(length(parameters(\'vpngw\')),0)]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]' + ] + name: '[concat(parameters(\'hubName\'),\'-vpngw\')]' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + apiVersion: '2020-05-01' + type: 'Microsoft.Network/publicIpAddresses' + location: '[parameters(\'HUB\').location]' + name: '[concat(parameters(\'vpngw\').name,\'-pip\')]' + properties: { + publicIPAllocationMethod: 'Dynamic' + } + tags: {} + } + { + apiVersion: '2020-05-01' + name: '[parameters(\'vpngw\').name]' + type: 'Microsoft.Network/virtualNetworkGateways' + location: '[parameters(\'HUB\').location]' + dependsOn: [ + '[concat(\'Microsoft.Network/publicIPAddresses/\', parameters(\'vpngw\').name,\'-pip\')]' + ] + tags: {} + properties: { + gatewayType: 'Vpn' + vpnType: '[parameters(\'vpngw\').vpnType]' + ipConfigurations: [ + { + name: 'default' + properties: { + privateIPAllocationMethod: 'Dynamic' + subnet: { + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/virtualNetworks/\', parameters(\'hubName\'),\'/subnets/GatewaySubnet\')]' + } + publicIpAddress: { + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/publicIPAddresses/\', parameters(\'vpngw\').name,\'-pip\')]' + } + } + } + ] + sku: { + name: '[parameters(\'vpngw\').sku]' + tier: '[parameters(\'vpngw\').sku]' + } + } + } + ] + } + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + condition: '[greater(length(parameters(\'ergw\')),0)]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]' + ] + name: '[concat(parameters(\'hubName\'),\'-ergw\')]' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + apiVersion: '2020-05-01' + type: 'Microsoft.Network/publicIpAddresses' + location: '[parameters(\'HUB\').location]' + name: '[concat(parameters(\'ergw\').name,\'-pip\')]' + properties: { + publicIPAllocationMethod: 'Dynamic' + } + tags: {} + } + { + apiVersion: '2020-05-01' + name: '[parameters(\'ergw\').name]' + type: 'Microsoft.Network/virtualNetworkGateways' + location: '[parameters(\'HUB\').location]' + dependsOn: [ + '[concat(\'Microsoft.Network/publicIPAddresses/\', parameters(\'ergw\').name,\'-pip\')]' + ] + tags: {} + properties: { + gatewayType: 'ExpressRoute' + ipConfigurations: [ + { + name: 'default' + properties: { + privateIPAllocationMethod: 'Dynamic' + subnet: { + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/virtualNetworks/\', parameters(\'hubName\'),\'/subnets/GatewaySubnet\')]' + } + publicIpAddress: { + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/publicIPAddresses/\', parameters(\'ergw\').name,\'-pip\')]' + } + } + } + ] + sku: { + name: '[parameters(\'ergw\').sku]' + tier: '[parameters(\'ergw\').sku]' + } + } + } + ] + } + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + condition: '[greater(length(parameters(\'azfw\')),0)]' + name: '[concat(parameters(\'hubName\'),\'-azfw\')]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + apiVersion: '2020-05-01' + type: 'Microsoft.Network/publicIpAddresses' + name: '[concat(parameters(\'azfw\').name,\'-pip\')]' + location: '[parameters(\'azfw\').location]' + sku: { + name: 'Standard' + } + zones: '[if(contains(parameters(\'azfw\'),\'pipZones\'),parameters(\'azfw\').pipZones,json(\'null\'))]' + properties: { + publicIPAllocationMethod: 'Static' + } + tags: {} + } + { + apiVersion: '2020-05-01' + type: 'Microsoft.Network/azureFirewalls' + name: '[parameters(\'azfw\').name]' + location: '[parameters(\'azfw\').location]' + zones: '[if(contains(parameters(\'azfw\'),\'fwZones\'),parameters(\'azfw\').fwZones,json(\'null\'))]' + dependsOn: [ + '[concat(parameters(\'azfw\').name,\'-pip\')]' + ] + properties: { + threatIntelMode: '[parameters(\'azfw\').threatIntelMode]' + additionalProperties: '[if(contains(parameters(\'azfw\'),\'additionalProperties\'),parameters(\'azfw\').additionalProperties,json(\'null\'))]' + sku: '[if(contains(parameters(\'azfw\'),\'sku\'),parameters(\'azfw\').sku,json(\'null\'))]' + ipConfigurations: [ + { + name: '[concat(parameters(\'azfw\').name,\'-pip\')]' + properties: { + subnet: { + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/virtualNetworks/\', parameters(\'hubName\'),\'/subnets/AzureFirewallSubnet\')]' + } + publicIPAddress: { + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/publicIPAddresses/\', parameters(\'azfw\').name,\'-pip\')]' + } + } + } + ] + firewallPolicy: '[if(contains(parameters(\'azfw\'),\'firewallPolicy\'),parameters(\'azfw\').firewallPolicy,json(\'null\'))]' + } + tags: {} + } + ] + } + } + } + ] + } + } + } + } + } + } + } + name: 'Deploy-HUB' + } + { + properties: { + Description: 'Deploy spoke network with configuration to hub network based on ipam configuration object' + DisplayName: 'Deploy spoke network with configuration to hub network based on ipam configuration object' + Mode: 'Indexed' + Parameters: { + ipam: { + type: 'Array' + metadata: { + displayName: 'ipam' + description: null + } + defaultValue: [] + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Resources/resourceGroups' + deploymentScope: 'Subscription' + existenceScope: 'Subscription' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + existenceCondition: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions/resourceGroups' + } + { + field: 'name' + like: '[concat(subscription().displayName, \'-network\')]' + } + ] + } + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + ipam: { + value: '[parameters(\'ipam\')]' + defaultValue: [] + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + ipam: { + defaultValue: [ + { + name: 'bu1-weu-msx3-vNet1' + location: 'westeurope' + virtualNetworks: { + properties: { + addressSpace: { + addressPrefixes: [ + '10.51.217.0/24' + ] + } + } + } + networkSecurityGroups: { + properties: { + securityRules: [] + } + } + routeTables: { + properties: { + routes: [] + } + } + hubVirtualNetworkConnection: { + vWanVhubResourceId: '/subscriptions/99c2838f-a548-4884-a6e2-38c1f8fb4c0b/resourceGroups/contoso-global-vwan/providers/Microsoft.Network/virtualHubs/contoso-vhub-weu' + properties: { + allowHubToRemoteVnetTransit: true + allowRemoteVnetToUseHubVnetGateways: false + enableInternetSecurity: true + } + } + } + ] + type: 'Array' + } + } + variables: { + vNetRgName: '[concat(subscription().displayName, \'-network\')]' + vNetName: '[concat(subscription().displayName, \'-vNet\')]' + vNetSubId: '[subscription().subscriptionId]' + } + resources: [ + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-ipam-\',subscription().displayName,\'-RG-\',copyIndex())]' + location: '[parameters(\'ipam\')[copyIndex()].location]' + dependsOn: [] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2020-06-01' + name: '[variables(\'vNetRgName\')]' + location: '[parameters(\'ipam\')[copyIndex()].location]' + properties: {} + } + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2020-06-01' + name: 'NetworkWatcherRG' + location: '[parameters(\'ipam\')[copyIndex()].location]' + properties: {} + } + ] + outputs: {} + } + } + copy: { + name: 'ipam-rg-loop' + count: '[length(parameters(\'ipam\'))]' + } + condition: '[if(and(not(empty(parameters(\'ipam\'))), equals(toLower(parameters(\'ipam\')[copyIndex()].name),toLower(variables(\'vNetName\')))),bool(\'true\'),bool(\'false\'))]' + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-ipam-\',subscription().displayName,\'-nsg-udr-vnet-hub-vwan-peering-\',copyIndex())]' + dependsOn: [ + '[concat(\'es-ipam-\',subscription().displayName,\'-RG-\',copyIndex())]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + condition: '[contains(parameters(\'ipam\')[copyIndex()],\'networkSecurityGroups\')]' + apiVersion: '2020-05-01' + type: 'Microsoft.Network/networkSecurityGroups' + name: '[concat(subscription().displayName, \'-nsg\')]' + location: '[parameters(\'ipam\')[copyIndex()].location]' + properties: '[if(contains(parameters(\'ipam\')[copyIndex()],\'networkSecurityGroups\'),parameters(\'ipam\')[copyIndex()].networkSecurityGroups.properties,json(\'null\'))]' + } + { + condition: '[contains(parameters(\'ipam\')[copyIndex()],\'routeTables\')]' + apiVersion: '2020-05-01' + type: 'Microsoft.Network/routeTables' + name: '[concat(subscription().displayName, \'-udr\')]' + location: '[parameters(\'ipam\')[copyIndex()].location]' + properties: '[if(contains(parameters(\'ipam\')[copyIndex()],\'routeTables\'),parameters(\'ipam\')[copyIndex()].routeTables.properties,json(\'null\'))]' + } + { + condition: '[contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\')]' + type: 'Microsoft.Network/virtualNetworks' + apiVersion: '2020-05-01' + name: '[concat(subscription().displayName, \'-vnet\')]' + location: '[parameters(\'ipam\')[copyIndex()].location]' + dependsOn: [ + '[concat(subscription().displayName, \'-nsg\')]' + '[concat(subscription().displayName, \'-udr\')]' + ] + properties: '[if(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\'),parameters(\'ipam\')[copyIndex()].virtualNetworks.properties,json(\'null\'))]' + } + { + condition: '[contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\')]' + type: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' + apiVersion: '2020-05-01' + name: '[concat(variables(\'vNetName\'), \'/peerToHub\')]' + dependsOn: [ + '[concat(subscription().displayName, \'-vnet\')]' + ] + properties: '[if(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties,json(\'null\'))]' + } + { + condition: '[and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\'),contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\'))]' + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-ipam-vWan-\',subscription().displayName,\'-peering-\',copyIndex())]' + subscriptionId: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),split(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,\'/\')[2],json(\'null\'))]' + resourceGroup: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),split(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,\'/\')[4],json(\'null\'))]' + dependsOn: [ + '[concat(subscription().displayName, \'-vnet\')]' + ] + properties: { + mode: 'Incremental' + expressionEvaluationOptions: { + scope: 'inner' + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + remoteVirtualNetwork: { + type: 'string' + } + vWanVhubName: { + Type: 'string' + defaultValue: '' + } + allowHubToRemoteVnetTransit: { + Type: 'bool' + defaultValue: true + } + allowRemoteVnetToUseHubVnetGateways: { + Type: 'bool' + defaultValue: false + } + enableInternetSecurity: { + Type: 'bool' + defaultValue: true + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualHubs/hubVirtualNetworkConnections' + apiVersion: '2020-05-01' + name: '[[concat(parameters(\'vWanVhubName\'),\'/\',last(split(parameters(\'remoteVirtualNetwork\'),\'/\')))]' + properties: { + remoteVirtualNetwork: { + id: '[[parameters(\'remoteVirtualNetwork\')]' + } + allowHubToRemoteVnetTransit: '[[parameters(\'allowHubToRemoteVnetTransit\')]' + allowRemoteVnetToUseHubVnetGateways: '[[parameters(\'allowRemoteVnetToUseHubVnetGateways\')]' + enableInternetSecurity: '[[parameters(\'enableInternetSecurity\')]' + } + } + ] + outputs: {} + } + parameters: { + remoteVirtualNetwork: { + value: '[concat(subscription().id,\'/resourceGroups/\',variables(\'vNetRgName\'), \'/providers/\',\'Microsoft.Network/virtualNetworks/\', concat(subscription().displayName, \'-vnet\'))]' + } + vWanVhubName: { + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),split(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,\'/\')[8],json(\'null\'))]' + } + allowHubToRemoteVnetTransit: { + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.properties.allowHubToRemoteVnetTransit,json(\'null\'))]' + } + allowRemoteVnetToUseHubVnetGateways: { + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.properties.allowRemoteVnetToUseHubVnetGateways,json(\'null\'))]' + } + enableInternetSecurity: { + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.properties.enableInternetSecurity,json(\'null\'))]' + } + } + } + } + { + condition: '[and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\'),contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\'))]' + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-ipam-hub-\',subscription().displayName,\'-peering-\',copyIndex())]' + subscriptionId: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\')),split(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,\'/\')[2],json(\'null\'))]' + resourceGroup: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\')),split(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,\'/\')[4],json(\'null\'))]' + dependsOn: [ + '[concat(subscription().displayName, \'-vnet\')]' + ] + properties: { + mode: 'Incremental' + expressionEvaluationOptions: { + scope: 'inner' + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + remoteVirtualNetwork: { + Type: 'string' + defaultValue: false + } + hubName: { + Type: 'string' + defaultValue: false + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' + name: '[[concat(parameters(\'hubName\'),\'/\',last(split(parameters(\'remoteVirtualNetwork\'),\'/\')))]' + apiVersion: '2020-05-01' + properties: { + allowVirtualNetworkAccess: true + allowForwardedTraffic: true + allowGatewayTransit: true + useRemoteGateways: false + remoteVirtualNetwork: { + id: '[[parameters(\'remoteVirtualNetwork\')]' + } + } + } + ] + outputs: {} + } + parameters: { + remoteVirtualNetwork: { + value: '[concat(subscription().id,\'/resourceGroups/\',variables(\'vNetRgName\'), \'/providers/\',\'Microsoft.Network/virtualNetworks/\', concat(subscription().displayName, \'-vnet\'))]' + } + hubName: { + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\')),split(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,\'/\')[8],json(\'null\'))]' + } + } + } + } + ] + outputs: {} + } + } + resourceGroup: '[variables(\'vNetRgName\')]' + copy: { + name: 'ipam-loop' + count: '[length(parameters(\'ipam\'))]' + } + condition: '[if(and(not(empty(parameters(\'ipam\'))), equals(toLower(parameters(\'ipam\')[copyIndex()].name),toLower(variables(\'vNetName\')))),bool(\'true\'),bool(\'false\'))]' + } + ] + outputs: { + ipam: { + condition: '[bool(\'true\')]' + type: 'Int' + value: '[length(parameters(\'ipam\'))]' + } + } + } + } + } + } + } + } + } + name: 'Deploy-vNet' + } + { + properties: { + Description: 'Deploy the Virtual WAN in the specific region.' + DisplayName: 'Deploy the Virtual WAN in the specific region' + Mode: 'Indexed' + Parameters: { + vwanname: { + type: 'String' + metadata: { + displayName: 'vwanname' + description: 'Name of the Virtual WAN' + } + } + vwanRegion: { + type: 'String' + metadata: { + displayName: 'vwanRegion' + description: 'Select Azure region for Virtual WAN' + strongType: 'location' + } + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/virtualWans' + deploymentScope: 'Subscription' + existenceScope: 'ResourceGroup' + name: '[parameters(\'vwanname\')]' + resourceGroupName: '[parameters(\'rgName\')]' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' + ] + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + rgName: { + value: '[parameters(\'rgName\')]' + } + vwanname: { + value: '[parameters(\'vwanname\')]' + } + vwanRegion: { + value: '[parameters(\'vwanRegion\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + rgName: { + type: 'string' + } + vwanname: { + type: 'string' + } + vwanRegion: { + type: 'string' + } + } + variables: { + vwansku: 'Standard' + } + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2018-05-01' + name: '[parameters(\'rgName\')]' + location: '[deployment().location]' + properties: {} + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + name: 'vwan' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: {} + resources: [ + { + type: 'Microsoft.Network/virtualWans' + apiVersion: '2020-05-01' + location: '[parameters(\'vwanRegion\')]' + name: '[parameters(\'vwanname\')]' + properties: { + virtualHubs: [] + vpnSites: [] + type: '[variables(\'vwansku\')]' + } + } + ] + outputs: {} + } + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-vWAN' + } + { + properties: { + Description: 'Deploy Virtual Hub network with Virtual Wan and Gateway and Firewall configured in the desired region. ' + DisplayName: 'Deploy Virtual Hub network with Virtual Wan and Gateway and Firewall configured.' + Mode: 'Indexed' + Parameters: { + vwanname: { + type: 'String' + metadata: { + displayName: 'vwanname' + description: 'Name of the Virtual WAN' + } + } + vHubName: { + type: 'String' + metadata: { + displayName: 'vHubName' + description: 'Name of the vHUB' + } + defaultValue: '' + } + vHUB: { + type: 'Object' + metadata: { + displayName: 'vHUB' + description: 'Object describing Virtual WAN vHUB' + } + } + vpngw: { + type: 'Object' + metadata: { + displayName: 'vpngw' + description: 'Object describing VPN gateway' + } + defaultValue: {} + } + ergw: { + type: 'Object' + metadata: { + displayName: 'ergw' + description: 'Object describing ExpressRoute gateway' + } + defaultValue: {} + } + azfw: { + type: 'Object' + metadata: { + displayName: 'azfw' + description: 'Object describing the Azure Firewall in vHUB' + } + defaultValue: {} + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/virtualHubs' + name: '[parameters(\'vHubName\')]' + deploymentScope: 'Subscription' + existenceScope: 'ResourceGroup' + ResourceGroupName: '[parameters(\'rgName\')]' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' + ] + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + rgName: { + value: '[parameters(\'rgName\')]' + } + vwanname: { + value: '[parameters(\'vwanname\')]' + } + vHUB: { + value: '[parameters(\'vHUB\')]' + } + vpngw: { + value: '[parameters(\'vpngw\')]' + } + ergw: { + value: '[parameters(\'ergw\')]' + } + azfw: { + value: '[parameters(\'azfw\')]' + } + vHUBName: { + value: '[parameters(\'vHUBName\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + vwanname: { + type: 'string' + metadata: { + description: 'Name of the Virtual WAN' + } + } + vHUB: { + type: 'object' + metadata: { + description: 'Object describing Virtual WAN vHUB' + } + } + vpngw: { + type: 'object' + defaultValue: {} + metadata: { + description: 'Object describing VPN gateway' + } + } + ergw: { + type: 'object' + defaultValue: {} + metadata: { + description: 'Object describing ExpressRoute gateway' + } + } + azfw: { + type: 'object' + defaultValue: {} + metadata: { + description: 'Object describing the Azure Firewall in vHUB' + } + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + vHUBName: { + type: 'String' + metadata: { + displayName: 'vHUBName' + description: 'Name of the vHUB' + } + } + } + variables: { + vhubsku: 'Standard' + vwanresourceid: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'),\'/providers/Microsoft.Network/virtualWans/\',parameters(\'vwanname\'))]' + vwanhub: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'),\'/providers/Microsoft.Network/virtualHubs/\',parameters(\'vHUBName\'))]' + } + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2018-05-01' + name: '[parameters(\'rgName\')]' + location: '[deployment().location]' + properties: {} + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + name: '[concat(\'vHUBdeploy-\',parameters(\'vHUB\').location)]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualHubs' + apiVersion: '2020-05-01' + location: '[parameters(\'vHUB\').location]' + name: '[parameters(\'vHUBname\')]' + properties: { + virtualWan: { + id: '[variables(\'vwanresourceid\')]' + } + addressPrefix: '[parameters(\'vHUB\').addressPrefix]' + sku: '[variables(\'vhubsku\')]' + } + } + ] + } + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + condition: '[greater(length(parameters(\'vpngw\')),0)]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[concat(\'vHUBdeploy-\',parameters(\'vHUB\').location)]' + ] + name: '[concat(parameters(\'vHUBName\'),\'-vpngw\')]' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Network/vpnGateways' + apiVersion: '2020-05-01' + location: '[parameters(\'vHUB\').location]' + name: '[parameters(\'vpngw\').name]' + properties: { + virtualHub: { + id: '[variables(\'vwanhub\')]' + } + bgpSettings: '[parameters(\'vpngw\').bgpSettings]' + vpnGatewayScaleUnit: '[parameters(\'vpngw\').vpnGatewayScaleUnit]' + } + } + ] + } + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + condition: '[greater(length(parameters(\'ergw\')),0)]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[concat(\'vHUBdeploy-\',parameters(\'vHUB\').location)]' + ] + name: '[concat(parameters(\'vHUBName\'),\'-ergw\')]' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Network/expressRouteGateways' + apiVersion: '2020-05-01' + location: '[parameters(\'vHUB\').location]' + name: '[parameters(\'ergw\').name]' + properties: { + virtualHub: { + id: '[variables(\'vwanhub\')]' + } + autoScaleConfiguration: '[parameters(\'ergw\').autoScaleConfiguration]' + } + } + ] + } + } + } + ] + } + } + } + } + } + } + } + name: 'Deploy-vHUB' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Virtual Machine Scale Sets to stream to a Log Analytics workspace when any Virtual Machine Scale Sets which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Virtual Machine Scale Sets to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Compute/virtualMachineScaleSets' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Compute/virtualMachineScaleSets/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-VMSS' + } + { + properties: { + Description: 'Deploys the diagnostic settings for VPN Gateway to stream to a Log Analytics workspace when any VPN Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.' + DisplayName: 'Deploy Diagnostic Settings for VPN Gateway to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/virtualNetworkGateways' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualNetworkGateways/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'GatewayDiagnosticLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'IKEDiagnosticLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'P2SDiagnosticLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'RouteDiagnosticLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'RouteDiagnosticLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'TunnelDiagnosticLog' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-VNetGW' + } + { + properties: { + Description: 'Deploy Windows Domain Join Extension with keyvault configuration when the extension does not exist on a given windows Virtual Machine' + DisplayName: 'Deploy Windows Domain Join Extension with keyvault configuration' + Mode: 'Indexed' + Parameters: { + domainUsername: { + type: 'String' + metadata: { + displayName: 'domainUsername' + description: null + } + } + domainPassword: { + type: 'String' + metadata: { + displayName: 'domainPassword' + description: null + } + } + domainFQDN: { + type: 'String' + metadata: { + displayName: 'domainFQDN' + description: null + } + } + domainOUPath: { + type: 'String' + metadata: { + displayName: 'domainOUPath' + description: null + } + } + keyVaultResourceId: { + type: 'String' + metadata: { + displayName: 'keyVaultResourceId' + description: null + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Guest Configuration' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Compute/virtualMachines' + } + { + field: 'Microsoft.Compute/imagePublisher' + equals: 'MicrosoftWindowsServer' + } + { + field: 'Microsoft.Compute/imageOffer' + equals: 'WindowsServer' + } + { + field: 'Microsoft.Compute/imageSKU' + in: [ + '2008-R2-SP1' + '2008-R2-SP1-smalldisk' + '2008-R2-SP1-zhcn' + '2012-Datacenter' + '2012-datacenter-gensecond' + '2012-Datacenter-smalldisk' + '2012-datacenter-smalldisk-g2' + '2012-Datacenter-zhcn' + '2012-datacenter-zhcn-g2' + '2012-R2-Datacenter' + '2012-r2-datacenter-gensecond' + '2012-R2-Datacenter-smalldisk' + '2012-r2-datacenter-smalldisk-g2' + '2012-R2-Datacenter-zhcn' + '2012-r2-datacenter-zhcn-g2' + '2016-Datacenter' + '2016-datacenter-gensecond' + '2016-datacenter-gs' + '2016-Datacenter-Server-Core' + '2016-datacenter-server-core-g2' + '2016-Datacenter-Server-Core-smalldisk' + '2016-datacenter-server-core-smalldisk-g2' + '2016-Datacenter-smalldisk' + '2016-datacenter-smalldisk-g2' + '2016-Datacenter-with-Containers' + '2016-datacenter-with-containers-g2' + '2016-Datacenter-with-RDSH' + '2016-Datacenter-zhcn' + '2016-datacenter-zhcn-g2' + '2019-Datacenter' + '2019-Datacenter-Core' + '2019-datacenter-core-g2' + '2019-Datacenter-Core-smalldisk' + '2019-datacenter-core-smalldisk-g2' + '2019-Datacenter-Core-with-Containers' + '2019-datacenter-core-with-containers-g2' + '2019-Datacenter-Core-with-Containers-smalldisk' + '2019-datacenter-core-with-containers-smalldisk-g2' + '2019-datacenter-gensecond' + '2019-datacenter-gs' + '2019-Datacenter-smalldisk' + '2019-datacenter-smalldisk-g2' + '2019-Datacenter-with-Containers' + '2019-datacenter-with-containers-g2' + '2019-Datacenter-with-Containers-smalldisk' + '2019-datacenter-with-containers-smalldisk-g2' + '2019-Datacenter-zhcn' + '2019-datacenter-zhcn-g2' + 'Datacenter-Core-1803-with-Containers-smalldisk' + 'datacenter-core-1803-with-containers-smalldisk-g2' + 'Datacenter-Core-1809-with-Containers-smalldisk' + 'datacenter-core-1809-with-containers-smalldisk-g2' + 'Datacenter-Core-1903-with-Containers-smalldisk' + 'datacenter-core-1903-with-containers-smalldisk-g2' + 'datacenter-core-1909-with-containers-smalldisk' + 'datacenter-core-1909-with-containers-smalldisk-g1' + 'datacenter-core-1909-with-containers-smalldisk-g2' + ] + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Compute/virtualMachines/extensions' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c' + ] + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Compute/virtualMachines/extensions/type' + equals: 'JsonADDomainExtension' + } + { + field: 'Microsoft.Compute/virtualMachines/extensions/publisher' + equals: 'Microsoft.Compute' + } + ] + } + deployment: { + properties: { + mode: 'incremental' + parameters: { + vmName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + domainUsername: { + reference: { + keyVault: { + id: '[parameters(\'keyVaultResourceId\')]' + } + secretName: '[parameters(\'domainUsername\')]' + } + } + domainPassword: { + reference: { + keyVault: { + id: '[parameters(\'keyVaultResourceId\')]' + } + secretName: '[parameters(\'domainPassword\')]' + } + } + domainOUPath: { + value: '[parameters(\'domainOUPath\')]' + } + domainFQDN: { + value: '[parameters(\'domainFQDN\')]' + } + keyVaultResourceId: { + value: '[parameters(\'keyVaultResourceId\')]' + } + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + vmName: { + type: 'string' + } + location: { + type: 'string' + } + domainUsername: { + type: 'string' + } + domainPassword: { + type: 'securestring' + } + domainFQDN: { + type: 'string' + } + domainOUPath: { + type: 'string' + } + keyVaultResourceId: { + type: 'string' + } + } + variables: { + domainJoinOptions: 3 + vmName: '[parameters(\'vmName\')]' + } + resources: [ + { + apiVersion: '2015-06-15' + type: 'Microsoft.Compute/virtualMachines/extensions' + name: '[concat(variables(\'vmName\'),\'/joindomain\')]' + location: '[resourceGroup().location]' + properties: { + publisher: 'Microsoft.Compute' + type: 'JsonADDomainExtension' + typeHandlerVersion: '1.3' + autoUpgradeMinorVersion: true + settings: { + Name: '[parameters(\'domainFQDN\')]' + User: '[parameters(\'domainUserName\')]' + Restart: 'true' + Options: '[variables(\'domainJoinOptions\')]' + OUPath: '[parameters(\'domainOUPath\')]' + } + protectedSettings: { + Password: '[parameters(\'domainPassword\')]' + } + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-Windows-DomainJoin' + } + ] +} +var initiatives = { + policySetDefinitions: [ + { + properties: { + Description: 'This policy set deploys the configurations of application Azure resources to forward diagnostic logs and metrics to an Azure Log Analytics workspace. See the list of policies of the services that are included ' + DisplayName: 'Deploy Diagnostic Settings to Azure Services' + Parameters: { + logAnalytics: { + metadata: { + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + displayName: 'Log Analytics workspace' + strongType: 'omsWorkspace' + } + type: 'String' + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + ACILogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Container Instances to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Container Instances to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.' + } + } + ACRLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Container Registry to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Container Registry to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.' + } + } + AKSLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Kubernetes Service to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Kubernetes Service to stream to a Log Analytics workspace when any Kubernetes Service which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.' + } + } + AnalysisServiceLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Analysis Services to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Analysis Services to stream to a Log Analytics workspace when any Analysis Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + APIMgmtLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for API Management to Log Analytics workspace' + description: 'Deploys the diagnostic settings for API Management to stream to a Log Analytics workspace when any API Management which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + ApplicationGatewayLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Application Gateway to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Application Gateway to stream to a Log Analytics workspace when any Application Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + AutomationLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Automation to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Automation to stream to a Log Analytics workspace when any Automation which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + BatchLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Batch to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Batch to stream to a Log Analytics workspace when any Batch which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + CDNEndpointsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for CDN Endpoint to Log Analytics workspace' + description: 'Deploys the diagnostic settings for CDN Endpoint to stream to a Log Analytics workspace when any CDN Endpoint which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + CognitiveServicesLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Cognitive Services to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Cognitive Services to stream to a Log Analytics workspace when any Cognitive Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + CosmosLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Cosmos DB to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Cosmos DB to stream to a Log Analytics workspace when any Cosmos DB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + DatabricksLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Databricks to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Databricks to stream to a Log Analytics workspace when any Databricks which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + DataFactoryLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Data Factory to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Data Factory to stream to a Log Analytics workspace when any Data Factory which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + DataLakeStoreLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Azure Data Lake Store to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Azure Data Lake Store to stream to a Log Analytics workspace when anyAzure Data Lake Store which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + DataLakeAnalyticsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Data Lake Analytics to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Data Lake Analytics to stream to a Log Analytics workspace when any Data Lake Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + EventGridSubLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Event Grid subscriptions to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Event Grid subscriptions to stream to a Log Analytics workspace when any Event Grid subscriptions which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + EventGridTopicLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Event Grid Topic to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Event Grid Topic to stream to a Log Analytics workspace when any Event Grid Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + EventHubLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Event Hubs to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Event Hubs to stream to a Log Analytics workspace when any Event Hubs which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + EventSystemTopicLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Event Grid System Topic to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Event Grid System Topic to stream to a Log Analytics workspace when any Event Grid System Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + ExpressRouteLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for ExpressRoute to Log Analytics workspace' + description: 'Deploys the diagnostic settings for ExpressRoute to stream to a Log Analytics workspace when any ExpressRoute which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + FirewallLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Firewall to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Firewall to stream to a Log Analytics workspace when any Firewall which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + FrontDoorLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Front Door to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Front Door to stream to a Log Analytics workspace when any Front Door which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + FunctionAppLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Azure Function App to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Azure Function App to stream to a Log Analytics workspace when any function app which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + HDInsightLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for HDInsight to Log Analytics workspace' + description: 'Deploys the diagnostic settings for HDInsight to stream to a Log Analytics workspace when any HDInsight which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + IotHubLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for IoT Hub to Log Analytics workspace' + description: 'Deploys the diagnostic settings for IoT Hub to stream to a Log Analytics workspace when any IoT Hub which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + KeyVaultLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Key Vault to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Key Vault to stream to a Log Analytics workspace when any Key Vault which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + LoadBalancerLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Load Balancer to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Load Balancer to stream to a Log Analytics workspace when any Load Balancer which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + LogicAppsISELogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Logic Apps integration service environment to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Logic Apps integration service environment to stream to a Log Analytics workspace when any Logic Apps integration service environment which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + LogicAppsWFLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Logic Apps Workflow runtime to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Logic Apps Workflow runtimeto stream to a Log Analytics workspace when any Logic Apps Workflow runtime which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + MariaDBLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for MariaDB to Log Analytics workspace' + description: 'Deploys the diagnostic settings for MariaDB to stream to a Log Analytics workspace when any MariaDB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + MlWorkspaceLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Machine Learning workspace to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Machine Learning workspace to stream to a Log Analytics workspace when any Machine Learning workspace which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + MySQLLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Database for MySQL to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Database for MySQL to stream to a Log Analytics workspace when any Database for MySQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + NetworkSecurityGroupsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Network Security Groups to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Network Security Groups to stream to a Log Analytics workspace when any Network Security Groups which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + NetworkNICLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Network Interfaces to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Network Interfaces to stream to a Log Analytics workspace when any Network Interfaces which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + PostgreSQLLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Database for PostgreSQL to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Database for PostgreSQL to stream to a Log Analytics workspace when any Database for PostgreSQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + PowerBIEmbeddedLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Power BI Embedded to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Power BI Embedded to stream to a Log Analytics workspace when any Power BI Embedded which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + NetworkPublicIPNicLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Public IP addresses to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Public IP addresses to stream to a Log Analytics workspace when any Public IP addresses which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + RecoveryVaultLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Recovery Services vaults to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Recovery Services vaults to stream to a Log Analytics workspace when any Recovery Services vaults which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + RedisCacheLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Redis Cache to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Redis Cache to stream to a Log Analytics workspace when any Redis Cache which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + RelayLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Relay to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Relay to stream to a Log Analytics workspace when any Relay which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + SearchServicesLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Search Services to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Search Services to stream to a Log Analytics workspace when any Search Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + ServiceBusLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Service Bus namespaces to Log Analytics workspace' + description: 'Deploys the diagnostic settings for ServiceBus to stream to a Log Analytics workspace when any ServiceBus which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + SignalRLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for SignalR to Log Analytics workspace' + description: 'Deploys the diagnostic settings for SignalR to stream to a Log Analytics workspace when any SignalR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + SQLDBsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for SQL Databases to Log Analytics workspace' + description: 'Deploys the diagnostic settings for SQL Databases to stream to a Log Analytics workspace when any SQL Databases which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + SQLElasticPoolsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for SQL Elastic Pools to Log Analytics workspace' + description: 'Deploys the diagnostic settings for SQL Elastic Pools to stream to a Log Analytics workspace when any SQL Elastic Pools which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + SQLMLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for SQL Managed Instances to Log Analytics workspace' + description: 'Deploys the diagnostic settings for SQL Managed Instances to stream to a Log Analytics workspace when any SQL Managed Instances which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + StreamAnalyticsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Stream Analytics to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Stream Analytics to stream to a Log Analytics workspace when any Stream Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + TimeSeriesInsightsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Time Series Insights to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Time Series Insights to stream to a Log Analytics workspace when any Time Series Insights which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + TrafficManagerLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Traffic Manager to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Traffic Manager to stream to a Log Analytics workspace when any Traffic Manager which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + VirtualNetworkLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Virtual Network to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Virtual Network to stream to a Log Analytics workspace when any Virtual Network which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + VirtualMachinesLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Virtual Machines to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Virtual Machines to stream to a Log Analytics workspace when any Virtual Machines which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + VMSSLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Virtual Machine Scale Sets to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Virtual Machine Scale Sets to stream to a Log Analytics workspace when any Virtual Machine Scale Sets which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + VNetGWLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for VPN Gateway to Log Analytics workspace' + description: 'Deploys the diagnostic settings for VPN Gateway to stream to a Log Analytics workspace when any VPN Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.' + } + } + AppServiceLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for App Service Plan to Log Analytics workspace' + description: 'Deploys the diagnostic settings for App Service Plan to stream to a Log Analytics workspace when any App Service Plan which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + AppServiceWebappLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for App Service to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Web App to stream to a Log Analytics workspace when any Web App which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + } + PolicyDefinitionGroups: null + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyDefinitions: [ + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ACI' + policyDefinitionReferenceId: 'ACIDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'ACILogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ACR' + policyDefinitionReferenceId: 'ACRDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'ACRLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AKS' + policyDefinitionReferenceId: 'AKSDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'AKSLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AnalysisService' + policyDefinitionReferenceId: 'AnalysisServiceDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'AnalysisServiceLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-APIMgmt' + policyDefinitionReferenceId: 'APIMgmtDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'APIMgmtLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ApplicationGateway' + policyDefinitionReferenceId: 'ApplicationGatewayDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'ApplicationGatewayLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AA' + policyDefinitionReferenceId: 'AutomationDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'AutomationLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Batch' + policyDefinitionReferenceId: 'BatchDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'BatchLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CDNEndpoints' + policyDefinitionReferenceId: 'CDNEndpointsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'CDNEndpointsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CognitiveServices' + policyDefinitionReferenceId: 'CognitiveServicesDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'CognitiveServicesLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CosmosDB' + policyDefinitionReferenceId: 'CosmosDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'CosmosLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Databricks' + policyDefinitionReferenceId: 'DatabricksDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'DatabricksLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DataFactory' + policyDefinitionReferenceId: 'DataFactoryDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'DataFactoryLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DataLakeStore' + policyDefinitionReferenceId: 'DataLakeStoreDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'DataLakeStoreLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DLAnalytics' + policyDefinitionReferenceId: 'DataLakeAnalyticsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'DataLakeAnalyticsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridSub' + policyDefinitionReferenceId: 'EventGridSubDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'EventGridSubLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridTopic' + policyDefinitionReferenceId: 'EventGridTopicDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'EventGridTopicLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventHub' + policyDefinitionReferenceId: 'EventHubDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'EventHubLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridSystemTopic' + policyDefinitionReferenceId: 'EventSystemTopicDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'EventSystemTopicLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ExpressRoute' + policyDefinitionReferenceId: 'ExpressRouteDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'ExpressRouteLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Firewall' + policyDefinitionReferenceId: 'FirewallDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'FirewallLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-FrontDoor' + policyDefinitionReferenceId: 'FrontDoorDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'FrontDoorLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Function' + policyDefinitionReferenceId: 'FunctionAppDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'FunctionAppLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-HDInsight' + policyDefinitionReferenceId: 'HDInsightDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'HDInsightLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-iotHub' + policyDefinitionReferenceId: 'IotHubDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'IotHubLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-KeyVault' + policyDefinitionReferenceId: 'KeyVaultDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'KeyVaultLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LoadBalancer' + policyDefinitionReferenceId: 'LoadBalancerDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'LoadBalancerLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LogicAppsISE' + policyDefinitionReferenceId: 'LogicAppsISEDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'LogicAppsISELogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LogicAppsWF' + policyDefinitionReferenceId: 'LogicAppsWFDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'LogicAppsWFLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MariaDB' + policyDefinitionReferenceId: 'MariaDBDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'MariaDBLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MlWorkspace' + policyDefinitionReferenceId: 'MlWorkspaceDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'MlWorkspaceLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MySQL' + policyDefinitionReferenceId: 'MySQLDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'MySQLLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-NetworkSecurityGroups' + policyDefinitionReferenceId: 'NetworkSecurityGroupsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'NetworkSecurityGroupsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-NIC' + policyDefinitionReferenceId: 'NetworkNICDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'NetworkNICLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PostgreSQL' + policyDefinitionReferenceId: 'PostgreSQLDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'PostgreSQLLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PowerBIEmbedded' + policyDefinitionReferenceId: 'PowerBIEmbeddedDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'PowerBIEmbeddedLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PublicIP' + policyDefinitionReferenceId: 'NetworkPublicIPNicDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'NetworkPublicIPNicLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-RecoveryVault' + policyDefinitionReferenceId: 'RecoveryVaultDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'RecoveryVaultLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-RedisCache' + policyDefinitionReferenceId: 'RedisCacheDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'RedisCacheLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Relay' + policyDefinitionReferenceId: 'RelayDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'RelayLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SearchServices' + policyDefinitionReferenceId: 'SearchServicesDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'SearchServicesLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ServiceBus' + policyDefinitionReferenceId: 'ServiceBusDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'ServiceBusLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SignalR' + policyDefinitionReferenceId: 'SignalRDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'SignalRLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLDBs' + policyDefinitionReferenceId: 'SQLDBsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'SQLDBsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLElasticPools' + policyDefinitionReferenceId: 'SQLElasticPoolsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'SQLElasticPoolsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLMI' + policyDefinitionReferenceId: 'SQLMDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'SQLMLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-StreamAnalytics' + policyDefinitionReferenceId: 'StreamAnalyticsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'StreamAnalyticsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-TimeSeriesInsights' + policyDefinitionReferenceId: 'TimeSeriesInsightsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'TimeSeriesInsightsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-TrafficManager' + policyDefinitionReferenceId: 'TrafficManagerDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'TrafficManagerLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VirtualNetwork' + policyDefinitionReferenceId: 'VirtualNetworkDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'VirtualNetworkLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VM' + policyDefinitionReferenceId: 'VirtualMachinesDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'VirtualMachinesLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VMSS' + policyDefinitionReferenceId: 'VMSSDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'VMSSLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VNetGW' + policyDefinitionReferenceId: 'VNetGWDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'VNetGWLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-WebServerFarm' + policyDefinitionReferenceId: 'AppServiceDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'AppServiceLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Website' + policyDefinitionReferenceId: 'AppServiceWebappDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'AppServiceWebappLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + ] + } + type: null + name: 'Deploy-Diag-LogAnalytics' + } + { + properties: { + Description: 'This policy denies creation of Azure PAAS services with exposed public endpoints. This policy set includes the policy for the following services KeyVault, Storage accounts, AKS, Cosmos, SQL Servers, MariaDB, MySQL and Postgress. ' + DisplayName: 'Public network access should be disabled for PAAS services' + Parameters: { + CosmosPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access should be disabled for CosmosDB' + description: 'This policy denies that Cosmos database accounts are created with out public network access is disabled.' + } + } + MariaDBPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access should be disabled for MariaDB' + description: 'This policy denies the creation of Maria DB accounts with exposed public endpoints' + } + } + MySQLPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access should be disabled for MySQL' + description: 'This policy denies creation of MySql DB accounts with exposed public endpoints' + } + } + PostgreSQLPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access should be disabled for PostgreSql' + description: 'This policy denies creation of Postgre SQL DB accounts with exposed public endpoints' + } + } + KeyVaultPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access should be disabled for KeyVault' + description: 'This policy denies creation of Key Vaults with IP Firewall exposed to all public endpoints' + } + } + SqlServerPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access on Azure SQL Database should be disabled' + description: 'This policy denies creation of Sql servers with exposed public endpoints' + } + } + StoragePublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access onStorage accounts should be disabled' + description: 'This policy denies creation of storage accounts with IP Firewall exposed to all public endpoints' + } + } + AKSPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access on AKS API should be disabled' + description: 'This policy denies the creation of Azure Kubernetes Service non-private clusters' + } + } + } + PolicyDefinitionGroups: null + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyDefinitions: [ + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-CosmosDB' + policyDefinitionReferenceId: 'CosmosDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'CosmosPublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-MariaDB' + policyDefinitionReferenceId: 'MariaDBDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'MariaDBPublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-MySQL' + policyDefinitionReferenceId: 'MySQLDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'MySQLPublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-PostgreSql' + policyDefinitionReferenceId: 'PostgreSQLDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'PostgreSQLPublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-KeyVault' + policyDefinitionReferenceId: 'KeyVaultDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'KeyVaultPublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Sql' + policyDefinitionReferenceId: 'SqlServerDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'SqlServerPublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Storage' + policyDefinitionReferenceId: 'StorageDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'StoragePublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Aks' + policyDefinitionReferenceId: 'AKSDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'AKSPublicIpDenyEffect\')]' + } + } + } + ] + } + type: null + name: 'Deny-PublicEndpoints' + } + { + properties: { + Description: 'Deploy auditing, Alert, TDE and SQL vulnerability to SQL Databases when it not exist in the deployment' + DisplayName: 'Deploy SQL Database built-in SQL security configuration' + Parameters: { + vulnerabilityAssessmentsEmail: { + metadata: { + description: 'The email address to send alerts' + displayName: 'The email address to send alerts' + } + type: 'String' + } + vulnerabilityAssessmentsStorageID: { + metadata: { + description: 'The storage account ID to store assessments' + displayName: 'The storage account ID to store assessments' + } + type: 'String' + } + SqlDbTdeDeploySqlSecurityEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy SQL Database Transparent Data Encryption ' + description: 'Deploy the Transparent Data Encryption when it is not enabled in the deployment' + } + } + SqlDbSecurityAlertPoliciesDeploySqlSecurityEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy SQL Database security Alert Policies configuration with email admin accounts' + description: 'Deploy the security Alert Policies configuration with email admin accounts when it not exist in current configuration' + } + } + SqlDbAuditingSettingsDeploySqlSecurityEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy SQL database auditing settings' + description: 'Deploy auditing settings to SQL Database when it not exist in the deployment' + } + } + SqlDbVulnerabilityAssessmentsDeploySqlSecurityEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy SQL Database vulnerability Assessments' + description: 'Deploy SQL Database vulnerability Assessments when it not exist in the deployment. To the specific storage account in the parameters' + } + } + } + PolicyDefinitionGroups: null + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyDefinitions: [ + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-Tde' + policyDefinitionReferenceId: 'SqlDbTdeDeploySqlSecurity' + parameters: { + effect: { + value: '[parameters(\'SqlDbTdeDeploySqlSecurityEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-SecurityAlertPolicies' + policyDefinitionReferenceId: 'SqlDbSecurityAlertPoliciesDeploySqlSecurity' + parameters: { + effect: { + value: '[parameters(\'SqlDbSecurityAlertPoliciesDeploySqlSecurityEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-AuditingSettings' + policyDefinitionReferenceId: 'SqlDbAuditingSettingsDeploySqlSecurity' + parameters: { + effect: { + value: '[parameters(\'SqlDbAuditingSettingsDeploySqlSecurityEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-vulnerabilityAssessments' + policyDefinitionReferenceId: 'SqlDbVulnerabilityAssessmentsDeploySqlSecurity' + parameters: { + effect: { + value: '[parameters(\'SqlDbVulnerabilityAssessmentsDeploySqlSecurityEffect\')]' + } + vulnerabilityAssessmentsEmail: { + value: '[parameters(\'vulnerabilityAssessmentsEmail\')]' + } + vulnerabilityAssessmentsStorageID: { + value: '[parameters(\'vulnerabilityAssessmentsStorageID\')]' + } + } + } + ] + } + type: null + name: 'Deploy-Sql-Security' + } + ] +} + +resource policies_policyDefinitions_0_name 'Microsoft.Authorization/policyDefinitions@2019-09-01' = { + name: policies.policyDefinitions[0].name + properties: { + displayName: policies.policyDefinitions[0].properties.displayName + description: policies.policyDefinitions[0].properties.description + mode: 'All' + policyType: 'Custom' + parameters: policies.policyDefinitions[0].properties.parameters + policyRule: policies.policyDefinitions[0].properties.policyRule + metadata: policies.policyDefinitions[0].properties.metadata + } +} + +resource initiatives_policySetDefinitions_0_name 'Microsoft.Authorization/policySetDefinitions@2019-09-01' = { + name: initiatives.policySetDefinitions[0].name + properties: { + displayName: initiatives.policySetDefinitions[0].properties.displayName + description: initiatives.policySetDefinitions[0].properties.description + parameters: initiatives.policySetDefinitions[0].properties.parameters + policyDefinitions: initiatives.policySetDefinitions[0].properties.policyDefinitions + metadata: initiatives.policySetDefinitions[0].properties.metadata + } +} diff --git a/src/Bicep.Core.Samples/Files/LargeTemplate_LF/main.formatted.bicep b/src/Bicep.Core.Samples/Files/LargeTemplate_LF/main.formatted.bicep new file mode 100644 index 00000000000..ce02401c365 --- /dev/null +++ b/src/Bicep.Core.Samples/Files/LargeTemplate_LF/main.formatted.bicep @@ -0,0 +1,17337 @@ +targetScope = 'managementGroup' + +@maxLength(5) +param topLevelManagementGroupPrefix string + +var scope = '/providers/Microsoft.Management/managementGroups/${topLevelManagementGroupPrefix}' +var policies = { + policyDefinitions: [ + { + properties: { + Description: 'Deploys the diagnostic settings for Container Instances to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.' + DisplayName: 'Deploy Diagnostic Settings for Container Instances to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.ContainerInstance/containerGroups' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.ContainerInstance/containerGroups/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-ACI' + } + { + Properties: { + Description: 'Depoloys a default budget on subscriptions.' + DisplayName: 'Deploy a default budget on subscriptions' + Mode: 'All' + Parameters: { + amount: { + type: 'string' + defaultValue: '1000' + metadata: { + description: 'The total amount of cost or usage to track with the budget' + } + } + timeGrain: { + type: 'string' + defaultValue: 'Monthly' + allowedValues: [ + 'Monthly' + 'Quarterly' + 'Annually' + 'BillingMonth' + 'BillingQuarter' + 'BillingAnnual' + ] + metadata: { + description: 'The time covered by a budget. Tracking of the amount will be reset based on the time grain.' + } + } + firstThreshold: { + type: 'string' + defaultValue: '90' + metadata: { + description: 'Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0 and 1000.' + } + } + secondThreshold: { + type: 'string' + defaultValue: '100' + metadata: { + description: 'Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0 and 1000.' + } + } + contactRoles: { + type: 'array' + defaultValue: [ + 'Owner' + 'Contributor' + ] + metadata: { + description: 'The list of contact RBAC roles, in an array, to send the budget notification to when the threshold is exceeded.' + } + } + contactEmails: { + type: 'array' + defaultValue: [] + metadata: { + description: 'The list of email addresses, in an array, to send the budget notification to when the threshold is exceeded.' + } + } + contactGroups: { + type: 'array' + defaultValue: [] + metadata: { + description: 'The list of action groups, in an array, to send the budget notification to when the threshold is exceeded. It accepts array of strings.' + } + } + } + metadata: { + version: '1.0.0' + category: 'Budget' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: 'DeployIfNotExists' + details: { + type: 'Microsoft.Consumption/budgets' + deploymentScope: 'Subscription' + existenceScope: 'Subscription' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Consumption/budgets/amount' + equals: '[parameters(\'amount\')]' + } + { + field: 'Microsoft.Consumption/budgets/timeGrain' + equals: '[parameters(\'timeGrain\')]' + } + { + field: 'Microsoft.Consumption/budgets/category' + equals: 'Cost' + } + ] + } + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' + ] + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + amount: { + value: '[parameters(\'amount\')]' + } + timeGrain: { + value: '[parameters(\'timeGrain\')]' + } + firstThreshold: { + value: '[parameters(\'firstThreshold\')]' + } + secondThreshold: { + value: '[parameters(\'secondThreshold\')]' + } + contactEmails: { + value: '[parameters(\'contactEmails\')]' + } + contactRoles: { + value: '[parameters(\'contactRoles\')]' + } + contactGroups: { + value: '[parameters(\'contactGroups\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + amount: { + type: 'string' + } + timeGrain: { + type: 'string' + } + firstThreshold: { + type: 'string' + } + secondThreshold: { + type: 'string' + } + contactEmails: { + type: 'array' + } + contactRoles: { + type: 'array' + } + contactGroups: { + type: 'array' + } + startDate: { + type: 'string' + defaultValue: '[concat(utcNow(\'MM\'), \'/01/\', utcNow(\'yyyy\'))]' + } + } + resources: [ + { + type: 'Microsoft.Consumption/budgets' + apiVersion: '2019-10-01' + name: 'default-sandbox-budget' + properties: { + timePeriod: { + startDate: '[parameters(\'startDate\')]' + } + timeGrain: '[parameters(\'timeGrain\')]' + amount: '[parameters(\'amount\')]' + category: 'Cost' + notifications: { + NotificationForExceededBudget1: { + enabled: true + operator: 'GreaterThan' + threshold: '[parameters(\'firstThreshold\')]' + contactEmails: '[parameters(\'contactEmails\')]' + contactRoles: '[parameters(\'contactRoles\')]' + contactGroups: '[parameters(\'contactGroups\')]' + } + NotificationForExceededBudget2: { + enabled: true + operator: 'GreaterThan' + threshold: '[parameters(\'secondThreshold\')]' + contactEmails: '[parameters(\'contactEmails\')]' + contactRoles: '[parameters(\'contactRoles\')]' + contactGroups: '[parameters(\'contactGroups\')]' + } + } + } + } + ] + } + } + } + } + } + } + } + name: 'Deploy-Budget' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Container Registry to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.' + DisplayName: 'Deploy Diagnostic Settings for Container Registry to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.ContainerRegistry/registries' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.ContainerRegistry/registries/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'ContainerRegistryLoginEvents' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ContainerRegistryRepositoryEvents' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-ACR' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Activity Log to stream to a Log Analytics workspace when any Activity Log which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with category enabled.' + DisplayName: 'Deploy Diagnostic Settings for Activity Log to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Primary Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + deploymentScope: 'Subscription' + existenceScope: 'Subscription' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + logAnalytics: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + name: 'subscriptionToLa' + type: 'Microsoft.Insights/diagnosticSettings' + apiVersion: '2017-05-01-preview' + location: 'Global' + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + logs: [ + { + category: 'Administrative' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Security' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ServiceHealth' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Alert' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Recommendation' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Policy' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Autoscale' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ResourceHealth' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + } + } + } + } + name: 'Deploy-Diagnostics-ActivityLog' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Kubernetes Service to stream to a Log Analytics workspace when any Kubernetes Service which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.' + DisplayName: 'Deploy Diagnostic Settings for Kubernetes Service to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.ContainerService/managedClusters' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.ContainerService/managedClusters/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'kube-audit' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'kube-apiserver' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'kube-controller-manager' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'kube-scheduler' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'cluster-autoscaler' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'guard' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'kube-audit-admin' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-AKS' + } + { + Properties: { + Description: 'This policy deploys virtual network and peer to the hub' + DisplayName: 'Deploys virtual network peering to hub' + Mode: 'All' + Parameters: { + vNetName: { + type: 'String' + metadata: { + displayName: 'vNetName' + description: 'Name of the landing zone vNet' + } + } + vNetRgName: { + type: 'String' + metadata: { + displayName: 'vNetRgName' + description: 'Name of the landing zone vNet RG' + } + } + vNetLocation: { + type: 'String' + metadata: { + displayName: 'vNetLocation' + description: 'Location for the vNet' + } + } + vNetCidrRange: { + type: 'String' + metadata: { + displayName: 'vNetCidrRange' + description: 'CIDR Range for the vNet' + } + } + hubResourceId: { + type: 'String' + metadata: { + displayName: 'hubResourceId' + description: 'Resource ID for the HUB vNet' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: 'deployIfNotExists' + details: { + type: 'Microsoft.Network/virtualNetworks' + name: '[parameters(\'vNetName\')]' + deploymentScope: 'Subscription' + existenceScope: 'ResourceGroup' + ResourceGroupName: '[parameters(\'vNetRgName\')]' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' + ] + existenceCondition: { + allOf: [ + { + field: 'name' + like: '[parameters(\'vNetName\')]' + } + { + field: 'location' + equals: '[parameters(\'vNetLocation\')]' + } + ] + } + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + vNetRgName: { + value: '[parameters(\'vNetRgName\')]' + } + vNetName: { + value: '[parameters(\'vNetName\')]' + } + vNetLocation: { + value: '[parameters(\'vNetLocation\')]' + } + vNetCidrRange: { + value: '[parameters(\'vNetCidrRange\')]' + } + hubResourceId: { + value: '[parameters(\'hubResourceId\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + vNetRgName: { + type: 'string' + } + vNetName: { + type: 'string' + } + vNetLocation: { + type: 'string' + } + vNetCidrRange: { + type: 'string' + } + vNetPeerUseRemoteGateway: { + type: 'bool' + defaultValue: false + } + hubResourceId: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-lz-vnet-\',substring(uniqueString(subscription().id),0,6),\'-rg\')]' + location: '[parameters(\'vNetLocation\')]' + dependsOn: [] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2020-06-01' + name: '[parameters(\'vNetRgName\')]' + location: '[parameters(\'vNetLocation\')]' + properties: {} + } + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2020-06-01' + name: 'NetworkWatcherRG' + location: '[parameters(\'vNetLocation\')]' + properties: {} + } + ] + outputs: {} + } + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-lz-vnet-\',substring(uniqueString(subscription().id),0,6))]' + dependsOn: [ + '[concat(\'es-lz-vnet-\',substring(uniqueString(subscription().id),0,6),\'-rg\')]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualNetworks' + apiVersion: '2020-06-01' + name: '[parameters(\'vNetName\')]' + location: '[parameters(\'vNetLocation\')]' + dependsOn: [] + properties: { + addressSpace: { + addressPrefixes: [ + '[parameters(\'vNetCidrRange\')]' + ] + } + } + } + { + type: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' + apiVersion: '2020-05-01' + name: '[concat(parameters(\'vNetName\'), \'/peerToHub\')]' + dependsOn: [ + '[parameters(\'vNetName\')]' + ] + properties: { + remoteVirtualNetwork: { + id: '[parameters(\'hubResourceId\')]' + } + allowVirtualNetworkAccess: true + allowForwardedTraffic: true + allowGatewayTransit: false + useRemoteGateways: '[parameters(\'vNetPeerUseRemoteGateway\')]' + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-lz-hub-\',substring(uniqueString(subscription().id),0,6),\'-peering\')]' + subscriptionId: '[split(parameters(\'hubResourceId\'),\'/\')[2]]' + resourceGroup: '[split(parameters(\'hubResourceId\'),\'/\')[4]]' + dependsOn: [ + '[parameters(\'vNetName\')]' + ] + properties: { + mode: 'Incremental' + expressionEvaluationOptions: { + scope: 'inner' + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + remoteVirtualNetwork: { + Type: 'string' + defaultValue: false + } + hubName: { + Type: 'string' + defaultValue: false + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' + name: '[[concat(parameters(\'hubName\'),\'/\',last(split(parameters(\'remoteVirtualNetwork\'),\'/\')))]' + apiVersion: '2020-05-01' + properties: { + allowVirtualNetworkAccess: true + allowForwardedTraffic: true + allowGatewayTransit: true + useRemoteGateways: false + remoteVirtualNetwork: { + id: '[[parameters(\'remoteVirtualNetwork\')]' + } + } + } + ] + outputs: {} + } + parameters: { + remoteVirtualNetwork: { + value: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'vNetRgName\'), \'/providers/\',\'Microsoft.Network/virtualNetworks/\', parameters(\'vNetName\'))]' + } + hubName: { + value: '[split(parameters(\'hubResourceId\'),\'/\')[8]]' + } + } + } + } + ] + outputs: {} + } + } + resourceGroup: '[parameters(\'vNetRgName\')]' + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-VNET-HubSpoke' + } + { + properties: { + Description: 'This policy denies the creation of Azure Kubernetes Service non-private clusters' + DisplayName: 'Public network access on AKS API should be disabled' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Kubernetes' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.ContainerService/managedClusters' + } + { + field: 'Microsoft.ContainerService/managedClusters/apiServerAccessProfile.enablePrivateCluster' + notequals: 'true' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-Aks' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Analysis Services to stream to a Log Analytics workspace when any Analysis Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Analysis Services to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.AnalysisServices/servers' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.AnalysisServices/servers/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Engine' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Service' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-AnalysisService' + } + { + properties: { + Description: 'Deploys the diagnostic settings for API Management to stream to a Log Analytics workspace when any API Management which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for API Management to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.ApiManagement/service' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.ApiManagement/service/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'Gateway Requests' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + { + category: 'Capacity' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + { + category: 'EventHub Events' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + { + category: 'Network Status' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'GatewayLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-APIMgmt' + } + { + properties: { + Description: 'This policy enables you to restrict that Application Gateways is always deployed with WAF enabled' + DisplayName: 'Application Gateway should be deployed with WAF enabled' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/applicationGateways' + } + { + field: 'Microsoft.Network/applicationGateways/sku.name' + notequals: 'WAF_v2' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-AppGW-Without-WAF' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Application Gateway to stream to a Log Analytics workspace when any Application Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Application Gateway to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/applicationGateways' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/applicationGateways/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'ApplicationGatewayAccessLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ApplicationGatewayPerformanceLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ApplicationGatewayFirewallLog' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-ApplicationGateway' + } + { + properties: { + Description: 'Deploys the diagnostic settings for App Service Plan to stream to a Log Analytics workspace when any App Service Plan which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for App Service Plan to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Web/serverfarms' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Web/serverfarms/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-WebServerFarm' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Web App to stream to a Log Analytics workspace when any Web App which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for App Service to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Web/sites' + } + { + value: '[field(\'kind\')]' + notContains: 'functionapp' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Web/sites/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'AppServiceAntivirusScanAuditLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceHTTPLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceConsoleLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceHTTPLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceAppLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceFileAuditLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceAuditLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceIPSecAuditLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServicePlatformLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-Website' + } + { + properties: { + Description: 'Deploys the Azure Defender settings in Azure Security Center for the specific services.' + DisplayName: 'Deploy Azure Defender settings in Azure Security Center.' + Mode: 'Indexed' + Parameters: { + pricingTierVMs: { + type: 'String' + metadata: { + displayName: 'pricingTierVMs' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierSqlServers: { + type: 'String' + metadata: { + displayName: 'pricingTierSqlServers' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierAppServices: { + type: 'String' + metadata: { + displayName: 'pricingTierAppServices' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierStorageAccounts: { + type: 'String' + metadata: { + displayName: 'pricingTierStorageAccounts' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierContainerRegistry: { + type: 'String' + metadata: { + displayName: 'pricingTierContainerRegistry' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierKeyVaults: { + type: 'String' + metadata: { + displayName: 'pricingTierKeyVaults' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierKubernetesService: { + type: 'String' + metadata: { + displayName: 'pricingTierKubernetesService' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierDns: { + type: 'String' + metadata: { + displayName: 'pricingTierDns' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierArm: { + type: 'String' + metadata: { + displayName: 'pricingTierArm' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Security Center' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Security/pricings' + deploymentScope: 'subscription' + existenceScope: 'subscription' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/fb1c8493-542b-48eb-b624-b4c8fea62acd' + ] + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Security/pricings/pricingTier' + equals: 'Standard' + } + { + field: 'type' + equals: 'Microsoft.Security/pricings' + } + ] + } + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + pricingTierVMs: { + value: '[parameters(\'pricingTierVMs\')]' + } + pricingTierSqlServers: { + value: '[parameters(\'pricingTierSqlServers\')]' + } + pricingTierAppServices: { + value: '[parameters(\'pricingTierAppServices\')]' + } + pricingTierStorageAccounts: { + value: '[parameters(\'pricingTierStorageAccounts\')]' + } + pricingTierContainerRegistry: { + value: '[parameters(\'pricingTierContainerRegistry\')]' + } + pricingTierKeyVaults: { + value: '[parameters(\'pricingTierKeyVaults\')]' + } + pricingTierKubernetesService: { + value: '[parameters(\'pricingTierKubernetesService\')]' + } + pricingTierDns: { + value: '[parameters(\'pricingTierDns\')]' + } + pricingTierArm: { + value: '[parameters(\'pricingTierArm\')]' + } + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + pricingTierVMs: { + type: 'string' + metadata: { + description: 'pricingTierVMs' + } + } + pricingTierSqlServers: { + type: 'string' + metadata: { + description: 'pricingTierSqlServers' + } + } + pricingTierAppServices: { + type: 'string' + metadata: { + description: 'pricingTierAppServices' + } + } + pricingTierStorageAccounts: { + type: 'string' + metadata: { + description: 'pricingTierStorageAccounts' + } + } + pricingTierContainerRegistry: { + type: 'string' + metadata: { + description: 'ContainerRegistry' + } + } + pricingTierKeyVaults: { + type: 'string' + metadata: { + description: 'KeyVaults' + } + } + pricingTierKubernetesService: { + type: 'string' + metadata: { + description: 'KubernetesService' + } + } + pricingTierDns: { + type: 'string' + metadata: { + description: 'KubernetesService' + } + } + pricingTierArm: { + type: 'string' + metadata: { + description: 'KubernetesService' + } + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'VirtualMachines' + properties: { + pricingTier: '[parameters(\'pricingTierVMs\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'StorageAccounts' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/VirtualMachines\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierStorageAccounts\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'AppServices' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/StorageAccounts\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierAppServices\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'SqlServers' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/AppServices\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierSqlServers\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'KeyVaults' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/SqlServers\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierKeyVaults\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'KubernetesService' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/KeyVaults\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierKubernetesService\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'ContainerRegistry' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/KubernetesService\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierContainerRegistry\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'Dns' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/ContainerRegistry\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierDns\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'Arm' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/Dns\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierArm\')]' + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-ASC-Standard' + } + { + properties: { + Description: 'This policy denies the creation of child resources on the Automation Account' + DisplayName: 'No child resources in Automation Account' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Automation' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + in: [ + 'Microsoft.Automation/automationAccounts/runbooks' + 'Microsoft.Automation/automationAccounts/variables' + 'Microsoft.Automation/automationAccounts/modules' + 'Microsoft.Automation/automationAccounts/credentials' + 'Microsoft.Automation/automationAccounts/connections' + 'Microsoft.Automation/automationAccount/certificates' + ] + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-AA-child-resources' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Automation to stream to a Log Analytics workspace when any Automation which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Automation to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Automation/automationAccounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Automation/automationAccounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + timeGrain: null + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + logs: [ + { + category: 'JobLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'JobStreams' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DscNodeStatus' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-AA' + } + { + properties: { + displayName: 'RDP access from the Internet should be blocked' + description: 'This policy denies any network security rule that allows RDP access from Internet' + mode: 'All' + metadata: { + version: '1.0.0' + category: 'Network' + } + parameters: { + effect: { + type: 'String' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + } + } + policyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/networkSecurityGroups/securityRules' + } + { + allOf: [ + { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/access' + equals: 'Allow' + } + { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/direction' + equals: 'Inbound' + } + { + anyOf: [ + { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange' + equals: '*' + } + { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange' + equals: '3389' + } + { + value: '[if(and(not(empty(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'))), contains(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'),\'-\')), and(lessOrEquals(int(first(split(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'), \'-\'))),3389),greaterOrEquals(int(last(split(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'), \'-\'))),3389)), \'false\')]' + equals: 'true' + } + { + count: { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]' + where: { + value: '[if(and(not(empty(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')))), contains(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')),\'-\')), and(lessOrEquals(int(first(split(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')), \'-\'))),3389),greaterOrEquals(int(last(split(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')), \'-\'))),3389)) , \'false\')]' + equals: 'true' + } + } + greater: 0 + } + { + not: { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]' + notEquals: '*' + } + } + { + not: { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]' + notEquals: '3389' + } + } + ] + } + { + anyOf: [ + { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefix' + equals: '*' + } + { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefix' + equals: 'Internet' + } + { + not: { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefixes[*]' + notEquals: '*' + } + } + { + not: { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefixes[*]' + notEquals: 'Internet' + } + } + ] + } + ] + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-RDP-From-Internet' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Batch to stream to a Log Analytics workspace when any Batch which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Batch to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Batch/batchAccounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Batch/batchAccounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'ServiceLog' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-Batch' + } + { + properties: { + Description: 'Deploys the diagnostic settings for CDN Endpoint to stream to a Log Analytics workspace when any CDN Endpoint which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for CDN Endpoint to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Cdn/profiles/endpoints' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Cdn/profiles/endpoints/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [] + logs: [ + { + category: 'CoreAnalytics' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'fullName\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-CDNEndpoints' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Cognitive Services to stream to a Log Analytics workspace when any Cognitive Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Cognitive Services to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.CognitiveServices/accounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.CognitiveServices/accounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Audit' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'RequestResponse' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Trace' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-CognitiveServices' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Cosmos DB to stream to a Log Analytics workspace when any Cosmos DB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Cosmos DB to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DocumentDB/databaseAccounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DocumentDB/databaseAccounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'Requests' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'DataPlaneRequests' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'MongoRequests' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'QueryRuntimeStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'PartitionKeyStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'PartitionKeyRUConsumption' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ControlPlaneRequests' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'CassandraRequests' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'GremlinRequests' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-CosmosDB' + } + { + properties: { + Description: 'This policy denies that Cosmos database accounts are created with out public network access is disabled.' + DisplayName: 'Public network access should be disabled for CosmosDB' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.DocumentDB/databaseAccounts' + } + { + field: 'Microsoft.DocumentDB/databaseAccounts/publicNetworkAccess' + notequals: 'Disabled' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-CosmosDB' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Databricks to stream to a Log Analytics workspace when any Databricks which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Databricks to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Databricks/workspaces' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Databricks/workspaces/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + logs: [ + { + category: 'dbfs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'clusters' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'accounts' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'jobs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'notebook' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ssh' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'workspace' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'secrets' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'sqlPermissions' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'instancePools' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-Databricks' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Data Factory to stream to a Log Analytics workspace when any Data Factory which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Data Factory to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DataFactory/factories' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DataFactory/factories/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'ActivityRuns' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'PipelineRuns' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'TriggerRuns' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SSISPackageEventMessages' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SSISPackageExecutableStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SSISPackageEventMessageContext' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SSISPackageExecutionComponentPhases' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SSISPackageExecutionDataStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SSISIntegrationRuntimeLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-DataFactory' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Data Lake Analytics to stream to a Log Analytics workspace when any Data Lake Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Data Lake Analytics to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DataLakeAnalytics/accounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DataLakeAnalytics/accounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Audit' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Requests' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-DLAnalytics' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Azure Data Lake Store to stream to a Log Analytics workspace when anyAzure Data Lake Store which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Azure Data Lake Store to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DataLakeStore/accounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DataLakeStore/accounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Audit' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Requests' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-DataLakeStore' + } + { + properties: { + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Blob Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' + DisplayName: 'Deploy DNS Zone Group for Storage-Blob Private Endpoint' + Mode: 'Indexed' + Parameters: { + privateDnsZoneId: { + type: 'String' + metadata: { + displayName: 'privateDnsZoneId' + strongType: 'Microsoft.Network/privateDnsZones' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/privateEndpoints' + } + { + count: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + where: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + equals: 'blob' + } + } + greaterOrEquals: 1 + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + privateDnsZoneId: { + type: 'string' + } + privateEndpointName: { + type: 'string' + } + location: { + type: 'string' + } + } + resources: [ + { + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + apiVersion: '2020-03-01' + location: '[parameters(\'location\')]' + properties: { + privateDnsZoneConfigs: [ + { + name: 'storageBlob-privateDnsZone' + properties: { + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' + } + } + ] + } + } + ] + } + parameters: { + privateDnsZoneId: { + value: '[parameters(\'privateDnsZoneId\')]' + } + privateEndpointName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-DNSZoneGroup-For-Blob-PrivateEndpoint' + } + { + properties: { + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-File Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' + DisplayName: 'Deploy DNS Zone Group for Storage-File Private Endpoint' + Mode: 'Indexed' + Parameters: { + privateDnsZoneId: { + type: 'String' + metadata: { + displayName: 'privateDnsZoneId' + strongType: 'Microsoft.Network/privateDnsZones' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/privateEndpoints' + } + { + count: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + where: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + equals: 'file' + } + } + greaterOrEquals: 1 + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + privateDnsZoneId: { + type: 'string' + } + privateEndpointName: { + type: 'string' + } + location: { + type: 'string' + } + } + resources: [ + { + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + apiVersion: '2020-03-01' + location: '[parameters(\'location\')]' + properties: { + privateDnsZoneConfigs: [ + { + name: 'storageFile-privateDnsZone' + properties: { + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' + } + } + ] + } + } + ] + } + parameters: { + privateDnsZoneId: { + value: '[parameters(\'privateDnsZoneId\')]' + } + privateEndpointName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-DNSZoneGroup-For-File-PrivateEndpoint' + } + { + properties: { + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Key Vault Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' + DisplayName: 'Deploy DNS Zone Group for Key Vault Private Endpoint' + Mode: 'Indexed' + Parameters: { + privateDnsZoneId: { + type: 'String' + metadata: { + displayName: 'privateDnsZoneId' + strongType: 'Microsoft.Network/privateDnsZones' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/privateEndpoints' + } + { + count: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + where: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + equals: 'vault' + } + } + greaterOrEquals: 1 + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + privateDnsZoneId: { + type: 'string' + } + privateEndpointName: { + type: 'string' + } + location: { + type: 'string' + } + } + resources: [ + { + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + apiVersion: '2020-03-01' + location: '[parameters(\'location\')]' + properties: { + privateDnsZoneConfigs: [ + { + name: 'keyVault-privateDnsZone' + properties: { + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' + } + } + ] + } + } + ] + } + parameters: { + privateDnsZoneId: { + value: '[parameters(\'privateDnsZoneId\')]' + } + privateEndpointName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-DNSZoneGroup-For-KeyVault-PrivateEndpoint' + } + { + properties: { + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Queue Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' + DisplayName: 'Deploy DNS Zone Group for Storage-Queue Private Endpoint' + Mode: 'Indexed' + Parameters: { + privateDnsZoneId: { + type: 'String' + metadata: { + displayName: 'privateDnsZoneId' + strongType: 'Microsoft.Network/privateDnsZones' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/privateEndpoints' + } + { + count: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + where: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + equals: 'queue' + } + } + greaterOrEquals: 1 + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + privateDnsZoneId: { + type: 'string' + } + privateEndpointName: { + type: 'string' + } + location: { + type: 'string' + } + } + resources: [ + { + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + apiVersion: '2020-03-01' + location: '[parameters(\'location\')]' + properties: { + privateDnsZoneConfigs: [ + { + name: 'storageQueue-privateDnsZone' + properties: { + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' + } + } + ] + } + } + ] + } + parameters: { + privateDnsZoneId: { + value: '[parameters(\'privateDnsZoneId\')]' + } + privateEndpointName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-DNSZoneGroup-For-Queue-PrivateEndpoint' + } + { + properties: { + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for SQL Private Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' + DisplayName: 'Deploy DNS Zone Group for SQL Private Endpoint' + Mode: 'Indexed' + Parameters: { + privateDnsZoneId: { + type: 'String' + metadata: { + displayName: 'privateDnsZoneId' + strongType: 'Microsoft.Network/privateDnsZones' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/privateEndpoints' + } + { + count: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + where: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + equals: 'sqlServer' + } + } + greaterOrEquals: 1 + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + privateDnsZoneId: { + type: 'string' + } + privateEndpointName: { + type: 'string' + } + location: { + type: 'string' + } + } + resources: [ + { + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + apiVersion: '2020-03-01' + location: '[parameters(\'location\')]' + properties: { + privateDnsZoneConfigs: [ + { + name: 'sqlServer-privateDnsZone' + properties: { + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' + } + } + ] + } + } + ] + } + parameters: { + privateDnsZoneId: { + value: '[parameters(\'privateDnsZoneId\')]' + } + privateEndpointName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-DNSZoneGroup-For-Sql-PrivateEndpoint' + } + { + properties: { + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Table Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' + DisplayName: 'Deploy DNS Zone Group for Storage-Table Private Endpoint' + Mode: 'Indexed' + Parameters: { + privateDnsZoneId: { + type: 'String' + metadata: { + displayName: 'privateDnsZoneId' + strongType: 'Microsoft.Network/privateDnsZones' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/privateEndpoints' + } + { + count: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + where: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + equals: 'table' + } + } + greaterOrEquals: 1 + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + privateDnsZoneId: { + type: 'string' + } + privateEndpointName: { + type: 'string' + } + location: { + type: 'string' + } + } + resources: [ + { + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + apiVersion: '2020-03-01' + location: '[parameters(\'location\')]' + properties: { + privateDnsZoneConfigs: [ + { + name: 'storageTable-privateDnsZone' + properties: { + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' + } + } + ] + } + } + ] + } + parameters: { + privateDnsZoneId: { + value: '[parameters(\'privateDnsZoneId\')]' + } + privateEndpointName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-DNSZoneGroup-For-Table-PrivateEndpoint' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Event Grid subscriptions to stream to a Log Analytics workspace when any Event Grid subscriptions which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Event Grid subscriptions to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.EventGrid/eventSubscriptions' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.EventGrid/eventSubscriptions/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-EventGridSub' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Event Grid Topic to stream to a Log Analytics workspace when any Event Grid Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Event Grid Topic to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.EventGrid/topics' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.EventGrid/topics/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'DeliveryFailures' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'PublishFailures' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-EventGridTopic' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Event Hubs to stream to a Log Analytics workspace when any Event Hubs which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Event Hubs to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.EventHub/namespaces' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.EventHub/namespaces/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'ArchiveLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'OperationalLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AutoScaleLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'KafkaCoordinatorLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'KafkaUserErrorLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'EventHubVNetConnectionEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'CustomerManagedKeyUserLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-EventHub' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Event Grid System Topic to stream to a Log Analytics workspace when any Event Grid System Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Event Grid System Topic to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.EventGrid/systemTopics' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.EventGrid/systemTopics/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'DeliveryFailures' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-EventGridSystemTopic' + } + { + properties: { + Description: 'Deploys the diagnostic settings for ExpressRoute to stream to a Log Analytics workspace when any ExpressRoute which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for ExpressRoute to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/expressRouteCircuits' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/expressRouteCircuits/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'PeeringRouteLog' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-ExpressRoute' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Firewall to stream to a Log Analytics workspace when any Firewall which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Firewall to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/azureFirewalls' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/azureFirewalls/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'AzureFirewallApplicationRule' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AzureFirewallNetworkRule' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AzureFirewallDnsProxy' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-Firewall' + } + { + properties: { + Description: 'Deploys Azure Firewall Manager policy in subscription where the policy is assigned.' + DisplayName: 'Deploy Azure Firewall Manager policy in the subscription' + Mode: 'Indexed' + Parameters: { + fwpolicy: { + type: 'Object' + metadata: { + displayName: 'fwpolicy' + description: 'Object describing Azure Firewall Policy' + } + defaultValue: {} + } + fwPolicyRegion: { + type: 'String' + metadata: { + displayName: 'fwPolicyRegion' + description: 'Select Azure region for Azure Firewall Policy' + strongType: 'location' + } + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/firewallPolicies' + deploymentScope: 'Subscription' + existenceScope: 'ResourceGroup' + resourceGroupName: '[parameters(\'rgName\')]' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' + ] + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + rgName: { + value: '[parameters(\'rgName\')]' + } + fwPolicy: { + value: '[parameters(\'fwPolicy\')]' + } + fwPolicyRegion: { + value: '[parameters(\'fwPolicyRegion\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + rgName: { + type: 'string' + } + fwPolicy: { + type: 'object' + } + fwPolicyRegion: { + type: 'string' + } + } + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2018-05-01' + name: '[parameters(\'rgName\')]' + location: '[deployment().location]' + properties: {} + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + name: 'fwpolicies' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Network/firewallPolicies' + apiVersion: '2019-09-01' + name: '[parameters(\'fwpolicy\').firewallPolicyName]' + location: '[parameters(\'fwpolicy\').location]' + dependsOn: [] + tags: {} + properties: {} + resources: [ + { + type: 'ruleGroups' + apiVersion: '2019-09-01' + name: '[parameters(\'fwpolicy\').ruleGroups.name]' + dependsOn: [ + '[resourceId(\'Microsoft.Network/firewallPolicies\',parameters(\'fwpolicy\').firewallPolicyName)]' + ] + properties: { + priority: '[parameters(\'fwpolicy\').ruleGroups.properties.priority]' + rules: '[parameters(\'fwpolicy\').ruleGroups.properties.rules]' + } + } + ] + } + ] + outputs: {} + } + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-FirewallPolicy' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Front Door to stream to a Log Analytics workspace when any Front Door which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Front Door to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/frontDoors' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/frontDoors/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'FrontdoorAccessLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'FrontdoorWebApplicationFirewallLog' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-FrontDoor' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Azure Function App to stream to a Log Analytics workspace when any function app which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Azure Function App to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Web/sites' + } + { + value: '[field(\'kind\')]' + notEquals: 'app' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Web/sites/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'FunctionAppLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-Function' + } + { + properties: { + Description: 'Deploys the diagnostic settings for HDInsight to stream to a Log Analytics workspace when any HDInsight which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for HDInsight to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.HDInsight/clusters' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.HDInsight/clusters/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-HDInsight' + } + { + properties: { + Description: 'Deploys the diagnostic settings for IoT Hub to stream to a Log Analytics workspace when any IoT Hub which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for IoT Hub to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Devices/IotHubs' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Devices/IotHubs/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Connections' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DeviceTelemetry' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'C2DCommands' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DeviceIdentityOperations' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'FileUploadOperations' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Routes' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'D2CTwinOperations' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'C2DTwinOperations' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'TwinQueries' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'JobsOperations' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DirectMethods' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DistributedTracing' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Configurations' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DeviceStreams' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-iotHub' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Key Vault to stream to a Log Analytics workspace when any Key Vault which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Key Vault to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.KeyVault/vaults' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + name: 'setByPolicy' + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.KeyVault/vaults/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'AuditEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-KeyVault' + } + { + properties: { + Description: 'This policy denies creation of Key Vaults with IP Firewall exposed to all public endpoints' + DisplayName: 'Public network access should be disabled for KeyVault' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Key Vault' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.KeyVault/vaults' + } + { + field: 'Microsoft.KeyVault/vaults/networkAcls.defaultAction' + notequals: 'Deny' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-KeyVault' + } + { + properties: { + Description: 'This policy enables you to ensure when a Key Vault is created with out soft delete enabled it will be added.' + DisplayName: 'KeyVault SoftDelete should be enabled' + Mode: 'Indexed' + Parameters: {} + metadata: { + version: '1.0.0' + category: 'Key Vault' + } + PolicyRule: { + if: { + anyOf: [ + { + allOf: [ + { + field: 'type' + equals: 'Microsoft.KeyVault/vaults' + } + { + field: 'Microsoft.KeyVault/vaults/enableSoftDelete' + notEquals: false + } + ] + } + ] + } + then: { + effect: 'append' + details: [ + { + field: 'Microsoft.KeyVault/vaults/enableSoftDelete' + value: true + } + ] + } + } + } + name: 'Append-KV-SoftDelete' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Load Balancer to stream to a Log Analytics workspace when any Load Balancer which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Load Balancer to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/loadBalancers' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/loadBalancers/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + timeGrain: null + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + logs: [ + { + category: 'LoadBalancerAlertEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'LoadBalancerProbeHealthStatus' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-LoadBalancer' + } + { + properties: { + Description: 'Deploy the configurations to the Log Analytics in the subscription. This includes a list of solutions like update, automation etc and enables the vminsight counters. ' + DisplayName: 'Deploy the configurations to the Log Analytics in the subscription' + Mode: 'Indexed' + Parameters: { + workspaceName: { + type: 'String' + metadata: { + displayName: 'workspaceName' + description: 'Provide name of existing Log Analytics workspace' + } + } + workspaceRegion: { + type: 'String' + metadata: { + displayName: 'workspaceRegion' + description: 'Select region of existing Log Analytics workspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.OperationalInsights/workspaces' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.OperationalInsights/workspaces' + deploymentScope: 'resourceGroup' + existenceScope: 'Subscription' + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + existenceCondition: { + allOf: [ + { + field: 'name' + like: '[parameters(\'workspaceName\')]' + } + { + field: 'location' + equals: '[parameters(\'workspaceRegion\')]' + } + ] + } + deployment: { + properties: { + mode: 'incremental' + parameters: { + workspaceName: { + value: '[parameters(\'workspaceName\')]' + } + workspaceRegion: { + value: '[parameters(\'workspaceRegion\')]' + } + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + workspaceName: { + type: 'string' + } + workspaceRegion: { + type: 'string' + } + } + variables: { + vmInsightsPerfCounters: { + windowsArray: [ + { + armName: 'counter1' + objectName: 'LogicalDisk' + counterName: '% Free Space' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter2' + objectName: 'LogicalDisk' + counterName: 'Avg. Disk sec/Read' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter3' + objectName: 'LogicalDisk' + counterName: 'Avg. Disk sec/Transfer' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter4' + objectName: 'LogicalDisk' + counterName: 'Avg. Disk sec/Write' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter5' + objectName: 'LogicalDisk' + counterName: 'Disk Read Bytes/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter6' + objectName: 'LogicalDisk' + counterName: 'Disk Reads/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter7' + objectName: 'LogicalDisk' + counterName: 'Disk Transfers/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter8' + objectName: 'LogicalDisk' + counterName: 'Disk Write Bytes/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter9' + objectName: 'LogicalDisk' + counterName: 'Disk Writes/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter10' + objectName: 'LogicalDisk' + counterName: 'Free Megabytes' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter11' + objectName: 'Memory' + counterName: 'Available MBytes' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter12' + objectName: 'Network Adapter' + counterName: 'Bytes Received/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter13' + objectName: 'Network Adapter' + counterName: 'Bytes Sent/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter14' + objectName: 'Processor' + counterName: '% Processor Time' + instanceName: '*' + intervalSeconds: 10 + } + ] + linuxDiskArray: [ + { + counterName: '% Used Inodes' + } + { + counterName: 'Free Megabytes' + } + { + counterName: '% Used Space' + } + { + counterName: 'Disk Transfers/sec' + } + { + counterName: 'Disk Reads/sec' + } + { + counterName: 'Disk writes/sec' + } + ] + linuxDiskObject: { + armResourceName: 'Disk' + objectName: 'Logical Disk' + instanceName: '*' + intervalSeconds: 10 + } + linuxMemoryArray: [ + { + counterName: 'Available MBytes Memory' + } + ] + linuxMemoryObject: { + armResourceName: 'Memory' + objectName: 'Memory' + instanceName: '*' + intervalSeconds: 10 + } + linuxNetworkArray: [ + { + counterName: 'Total Bytes Received' + } + { + counterName: 'Total Bytes Transmitted' + } + ] + linuxNetworkObject: { + armResourceName: 'Network' + objectName: 'Network' + instanceName: '*' + intervalSeconds: 10 + } + linuxCpuArray: [ + { + counterName: '% Processor Time' + } + ] + linuxCpuObject: { + armResourceName: 'Processor' + objectName: 'Processor' + instanceName: '*' + intervalSeconds: 10 + } + } + batch1: { + solutions: [ + { + name: '[concat(\'Security\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'Security' + } + { + name: '[concat(\'AgentHealthAssessment\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'AgentHealthAssessment' + } + { + name: '[concat(\'ChangeTracking\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'ChangeTracking' + } + { + name: '[concat(\'Updates\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'Updates' + } + { + name: '[concat(\'AzureActivity\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'AzureActivity' + } + { + name: '[concat(\'AzureAutomation\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'AzureAutomation' + } + { + name: '[concat(\'ADAssessment\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'ADAssessment' + } + { + name: '[concat(\'SQLAssessment\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'SQLAssessment' + } + { + name: '[concat(\'VMInsights\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'VMInsights' + } + { + name: '[concat(\'ServiceMap\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'ServiceMap' + } + { + name: '[concat(\'SecurityInsights\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'SecurityInsights' + } + ] + } + } + resources: [ + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationalInsights/workspaces/datasources' + name: '[concat(parameters(\'workspaceName\'), \'/LinuxPerfCollection\')]' + kind: 'LinuxPerformanceCollection' + properties: { + state: 'Enabled' + } + } + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationalInsights/workspaces/dataSources' + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxDiskObject.armResourceName)]' + kind: 'LinuxPerformanceObject' + properties: { + performanceCounters: '[variables(\'vmInsightsPerfCounters\').linuxDiskArray]' + objectName: '[variables(\'vmInsightsPerfCounters\').linuxDiskObject.objectName]' + instanceName: '[variables(\'vmInsightsPerfCounters\').linuxDiskObject.instanceName]' + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').linuxDiskObject.intervalSeconds]' + } + } + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationalInsights/workspaces/dataSources' + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxMemoryObject.armResourceName)]' + kind: 'LinuxPerformanceObject' + properties: { + performanceCounters: '[variables(\'vmInsightsPerfCounters\').linuxMemoryArray]' + objectName: '[variables(\'vmInsightsPerfCounters\').linuxMemoryObject.objectName]' + instanceName: '[variables(\'vmInsightsPerfCounters\').linuxMemoryObject.instanceName]' + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').linuxMemoryObject.intervalSeconds]' + } + } + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationalInsights/workspaces/dataSources' + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxCpuObject.armResourceName)]' + kind: 'LinuxPerformanceObject' + properties: { + performanceCounters: '[variables(\'vmInsightsPerfCounters\').linuxCpuArray]' + objectName: '[variables(\'vmInsightsPerfCounters\').linuxCpuObject.objectName]' + instanceName: '[variables(\'vmInsightsPerfCounters\').linuxCpuObject.instanceName]' + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').linuxCpuObject.intervalSeconds]' + } + } + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationalInsights/workspaces/dataSources' + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxNetworkObject.armResourceName)]' + kind: 'LinuxPerformanceObject' + properties: { + performanceCounters: '[variables(\'vmInsightsPerfCounters\').linuxNetworkArray]' + objectName: '[variables(\'vmInsightsPerfCounters\').linuxNetworkObject.objectName]' + instanceName: '[variables(\'vmInsightsPerfCounters\').linuxNetworkObject.instanceName]' + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').linuxNetworkObject.intervalSeconds]' + } + } + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationalInsights/workspaces/dataSources' + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].armName)]' + kind: 'WindowsPerformanceCounter' + copy: { + name: 'counterCopy' + count: '[length(variables(\'vmInsightsPerfCounters\').windowsArray)]' + } + properties: { + objectName: '[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].objectName]' + instanceName: '[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].instanceName]' + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].intervalSeconds]' + counterName: '[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].counterName]' + } + } + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationsManagement/solutions' + name: '[concat(variables(\'batch1\').solutions[copyIndex()].Name)]' + location: '[parameters(\'workspaceRegion\')]' + copy: { + name: 'solutionCopy' + count: '[length(variables(\'batch1\').solutions)]' + } + properties: { + workspaceResourceId: '[resourceId(\'Microsoft.OperationalInsights/workspaces/\', parameters(\'workspaceName\'))]' + } + plan: { + name: '[variables(\'batch1\').solutions[copyIndex()].name]' + product: '[concat(\'OMSGallery/\', variables(\'batch1\').solutions[copyIndex()].marketplaceName)]' + promotionCode: '' + publisher: 'Microsoft' + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-LA-Config' + } + { + properties: { + Description: 'Deploys Log Analytics and Automation account to the subscription where the policy is assigned.' + DisplayName: 'Deploy the Log Analytics in the subscription' + Mode: 'Indexed' + Parameters: { + workspaceName: { + type: 'String' + metadata: { + displayName: 'workspaceName' + description: 'Provide name for log analytics workspace' + } + } + automationAccountName: { + type: 'String' + metadata: { + displayName: 'automationAccountName' + description: 'Provide name for automation account' + } + } + workspaceRegion: { + type: 'String' + metadata: { + displayName: 'workspaceRegion' + description: 'Select Azure region for Log Analytics' + } + } + automationRegion: { + type: 'String' + metadata: { + displayName: 'automationRegion' + description: 'Select Azure region for Automation account' + } + } + retentionInDays: { + type: 'string' + defaultValue: '30' + metadata: { + displayName: 'Data retention' + description: 'Select data retention (days) for Log Analytics.' + } + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.OperationalInsights/workspaces' + deploymentScope: 'Subscription' + existenceScope: 'Subscription' + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + existenceCondition: { + allOf: [ + { + field: 'name' + like: '[parameters(\'workspaceName\')]' + } + ] + } + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + rgName: { + value: '[parameters(\'rgName\')]' + } + retentionInDays: { + value: '[parameters(\'retentionInDays\')]' + } + workspaceName: { + value: '[parameters(\'workspaceName\')]' + } + workspaceRegion: { + value: '[parameters(\'workspaceRegion\')]' + } + automationAccountName: { + value: '[parameters(\'automationAccountName\')]' + } + automationRegion: { + value: '[parameters(\'automationRegion\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + rgName: { + type: 'string' + } + workspaceName: { + type: 'string' + } + workspaceRegion: { + type: 'string' + } + automationAccountName: { + type: 'string' + } + automationRegion: { + type: 'string' + } + retentionInDays: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2018-05-01' + name: '[parameters(\'rgName\')]' + location: '[deployment().location]' + properties: {} + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + name: 'log-analytics' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + apiversion: '2015-10-31' + location: '[parameters(\'AutomationRegion\')]' + name: '[parameters(\'AutomationAccountName\')]' + type: 'Microsoft.Automation/automationAccounts' + comments: 'Automation account for ' + properties: { + sku: { + name: 'OMS' + } + } + } + { + apiVersion: '2017-03-15-preview' + location: '[parameters(\'workspaceRegion\')]' + name: '[parameters(\'workspaceName\')]' + type: 'Microsoft.OperationalInsights/workspaces' + properties: { + sku: { + name: 'pernode' + } + enableLogAccessUsingOnlyResourcePermissions: true + retentionInDays: '[int(parameters(\'retentionInDays\'))]' + } + resources: [ + { + name: 'Automation' + type: 'linkedServices' + apiVersion: '2015-11-01-preview' + dependsOn: [ + '[resourceId(\'Microsoft.OperationalInsights/workspaces/\', parameters(\'workspaceName\'))]' + '[resourceId(\'Microsoft.Automation/automationAccounts/\', parameters(\'AutomationAccountName\'))]' + ] + properties: { + resourceId: '[concat(subscription().id, \'/resourceGroups/\', parameters(\'rgName\'), \'/providers/Microsoft.Automation/automationAccounts/\', parameters(\'AutomationAccountName\'))]' + } + } + ] + } + ] + outputs: {} + } + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-Log-Analytics' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Logic Apps integration service environment to stream to a Log Analytics workspace when any Logic Apps integration service environment which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Logic Apps integration service environment to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Logic/integrationAccounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Logic/integrationAccounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [] + logs: [ + { + category: 'IntegrationAccountTrackingEvents' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-LogicAppsISE' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Logic Apps Workflow runtimeto stream to a Log Analytics workspace when any Logic Apps Workflow runtime which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Logic Apps Workflow runtime to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Logic/workflows' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Logic/workflows/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'WorkflowRuntime' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-LogicAppsWF' + } + { + properties: { + Description: 'Deploys the diagnostic settings for MariaDB to stream to a Log Analytics workspace when any MariaDB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for MariaDB to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DBforMariaDB/servers' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DBforMariaDB/servers/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'MySqlSlowLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'MySqlAuditLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-MariaDB' + } + { + properties: { + Description: 'This policy denies the creation of Maria DB accounts with exposed public endpoints' + DisplayName: 'Public network access should be disabled for MariaDB' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.DBforMariaDB/servers' + } + { + field: 'Microsoft.DBforMariaDB/servers/publicNetworkAccess' + notequals: 'Disabled' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-MariaDB' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Machine Learning workspace to stream to a Log Analytics workspace when any Machine Learning workspace which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Machine Learning workspace to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.MachineLearningServices/workspaces' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.MachineLearningServices/workspaces/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'Run' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + { + category: 'Model' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: true + } + } + { + category: 'Quota' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + { + category: 'Resource' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'AmlComputeClusterEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AmlComputeClusterNodeEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AmlComputeJobEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AmlComputeCpuGpuUtilization' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AmlRunStatusChangedEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-MlWorkspace' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Database for MySQL to stream to a Log Analytics workspace when any Database for MySQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Database for MySQL to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DBforMySQL/servers' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DBforMySQL/servers/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'MySqlSlowLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'MySqlAuditLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-MySQL' + } + { + properties: { + Description: 'This policy denies creation of MySql DB accounts with exposed public endpoints' + DisplayName: 'Public network access should be disabled for MySQL' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.DBforMySQL/servers' + } + { + field: 'Microsoft.DBforMySQL/servers/publicNetworkAccess' + notequals: 'Disabled' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-MySQL' + } + { + properties: { + Description: 'Deploys an Azure DDoS Protection Standard plan' + DisplayName: 'Deploy an Azure DDoS Protection Standard plan' + Mode: 'Indexed' + Parameters: { + ddosName: { + type: 'String' + metadata: { + displayName: 'ddosName' + description: 'Name of the Virtual WAN' + } + } + ddosRegion: { + type: 'String' + metadata: { + displayName: 'ddosRegion' + description: 'Select Azure region for Virtual WAN' + strongType: 'location' + } + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/ddosProtectionPlans' + deploymentScope: 'Subscription' + existenceScope: 'ResourceGroup' + resourceGroupName: '[parameters(\'rgName\')]' + name: '[parameters(\'ddosName\')]' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + rgName: { + value: '[parameters(\'rgName\')]' + } + ddosname: { + value: '[parameters(\'ddosname\')]' + } + ddosregion: { + value: '[parameters(\'ddosRegion\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + rgName: { + type: 'string' + } + ddosname: { + type: 'string' + } + ddosRegion: { + type: 'string' + } + } + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2018-05-01' + name: '[parameters(\'rgName\')]' + location: '[deployment().location]' + properties: {} + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + name: 'ddosprotection' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: {} + resources: [ + { + type: 'Microsoft.Network/ddosProtectionPlans' + apiVersion: '2019-12-01' + name: '[parameters(\'ddosName\')]' + location: '[parameters(\'ddosRegion\')]' + properties: {} + } + ] + outputs: {} + } + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-DDoSProtection' + } + { + properties: { + Description: 'This policy denies the creation of vNet Peerings under the assigned scope.' + DisplayName: 'Deny vNet peering ' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-VNet-Peering' + } + { + properties: { + Description: 'This policy denies the creation of a private DNS in the current scope, used in combination with policies that create centralized private DNS in connectivity subscription' + DisplayName: 'Deny the creation of private DNS' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/privateDnsZones' + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-Private-DNS-Zones' + } + { + properties: { + Description: 'This policy denies creation of Public IPs under the assigned scope.' + DisplayName: 'Deny the creation of public IP' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/publicIPAddresses' + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicIP' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Network Interfaces to stream to a Log Analytics workspace when any Network Interfaces which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Network Interfaces to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/networkInterfaces' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/networkInterfaces/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + timeGrain: null + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-NIC' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Public IP addresses to stream to a Log Analytics workspace when any Public IP addresses which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Public IP addresses to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/publicIPAddresses' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/publicIPAddresses/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + timeGrain: null + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + logs: [ + { + category: 'DDoSProtectionNotifications' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DDoSMitigationFlowLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DDoSMitigationReports' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-PublicIP' + } + { + properties: { + Description: 'Deploys NSG flow logs and traffic analytics to a storageaccountid with a specfied retention period.' + DisplayName: 'Deploys NSG flow logs and traffic analytics' + Mode: 'Indexed' + Parameters: { + retention: { + type: 'Integer' + metadata: { + displayName: 'Retention' + } + defaultValue: 5 + } + storageAccountResourceId: { + type: 'String' + metadata: { + displayName: 'Storage Account Resource Id' + strongType: 'Microsoft.Storage/storageAccounts' + } + } + trafficAnalyticsInterval: { + type: 'Integer' + metadata: { + displayName: 'Traffic Analytics processing interval mins (10/60)' + } + defaultValue: 60 + } + flowAnalyticsEnabled: { + type: 'Boolean' + metadata: { + displayName: 'Enable Traffic Analytics' + } + defaultValue: false + } + logAnalytics: { + type: 'String' + metadata: { + strongType: 'omsWorkspace' + displayName: 'Resource ID of Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + } + defaultValue: '' + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/networkSecurityGroups' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/networkWatchers/flowLogs' + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + resourceGroupName: 'NetworkWatcherRG' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Network/networkWatchers/flowLogs/enabled' + equals: 'true' + } + { + field: 'Microsoft.Network/networkWatchers/flowLogs/flowAnalyticsConfiguration.networkWatcherFlowAnalyticsConfiguration.enabled' + equals: '[parameters(\'flowAnalyticsEnabled\')]' + } + ] + } + deployment: { + properties: { + mode: 'incremental' + parameters: { + networkSecurityGroupName: { + value: '[field(\'name\')]' + } + resourceGroupName: { + value: '[resourceGroup().name]' + } + location: { + value: '[field(\'location\')]' + } + storageAccountResourceId: { + value: '[parameters(\'storageAccountResourceId\')]' + } + retention: { + value: '[parameters(\'retention\')]' + } + flowAnalyticsEnabled: { + value: '[parameters(\'flowAnalyticsEnabled\')]' + } + trafficAnalyticsInterval: { + value: '[parameters(\'trafficAnalyticsInterval\')]' + } + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + networkSecurityGroupName: { + type: 'string' + } + resourceGroupName: { + type: 'string' + } + location: { + type: 'string' + } + storageAccountResourceId: { + type: 'string' + } + retention: { + type: 'int' + } + flowAnalyticsEnabled: { + type: 'bool' + } + trafficAnalyticsInterval: { + type: 'int' + } + logAnalytics: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/networkWatchers/flowLogs' + apiVersion: '2020-05-01' + name: '[take(concat(\'NetworkWatcher_\', toLower(parameters(\'location\')), \'/\', parameters(\'networkSecurityGroupName\'), \'-\', parameters(\'resourceGroupName\'), \'-flowlog\' ), 80)]' + location: '[parameters(\'location\')]' + properties: { + targetResourceId: '[resourceId(parameters(\'resourceGroupName\'), \'Microsoft.Network/networkSecurityGroups\', parameters(\'networkSecurityGroupName\'))]' + storageId: '[parameters(\'storageAccountResourceId\')]' + enabled: true + retentionPolicy: { + enabled: true + days: '[parameters(\'retention\')]' + } + format: { + type: 'JSON' + version: 2 + } + flowAnalyticsConfiguration: { + networkWatcherFlowAnalyticsConfiguration: { + enabled: '[bool(parameters(\'flowAnalyticsEnabled\'))]' + trafficAnalyticsInterval: '[parameters(\'trafficAnalyticsInterval\')]' + workspaceId: '[if(not(empty(parameters(\'logAnalytics\'))), reference(parameters(\'logAnalytics\'), \'2020-03-01-preview\', \'Full\').properties.customerId, json(\'null\')) ]' + workspaceRegion: '[if(not(empty(parameters(\'logAnalytics\'))), reference(parameters(\'logAnalytics\'), \'2020-03-01-preview\', \'Full\').location, json(\'null\')) ]' + workspaceResourceId: '[if(not(empty(parameters(\'logAnalytics\'))), parameters(\'logAnalytics\'), json(\'null\'))]' + } + } + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-Nsg-FlowLogs' + } + { + properties: { + Description: 'This policy denies the creation of a subsnet with out an Network Security Group. NSG help to protect traffic across subnet-level.' + DisplayName: 'Subnets should have a Network Security Group ' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/virtualNetworks/subnets' + } + { + field: 'Microsoft.Network/virtualNetworks/subnets/networkSecurityGroup.id' + exists: 'false' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-Subnet-Without-Nsg' + } + { + properties: { + displayName: 'Subnets should have a User Defined Route' + policyType: 'Custom' + mode: 'Indexed' + description: 'This policy denies the creation of a subsnet with out a User Defined Route.' + metadata: { + version: '1.0.0' + category: 'Network' + } + parameters: { + effect: { + type: 'String' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + } + } + policyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/virtualNetworks/subnets' + } + { + field: 'Microsoft.Network/virtualNetworks/subnets/routeTable.id' + exists: 'false' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-Subnet-Without-Udr' + } + { + Properties: { + Description: 'This policy denies the creation of vNet Peerings outside of the same subscriptions under the assigned scope.' + DisplayName: 'Deny vNet peering cross subscription.' + Mode: 'Indexed' + metadata: { + version: '1.0.0.0' + category: 'Network' + } + Parameters: { + effect: { + type: 'String' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + } + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' + } + { + field: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings/remoteVirtualNetwork.id' + notcontains: '[subscription().id]' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-VNET-Peer-Cross-Sub' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Network Security Groups to stream to a Log Analytics workspace when any Network Security Groups which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Network Security Groups to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/networkSecurityGroups' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/networkSecurityGroups/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [] + logs: [ + { + category: 'NetworkSecurityGroupEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'NetworkSecurityGroupRuleCounter' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-NetworkSecurityGroups' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Database for PostgreSQL to stream to a Log Analytics workspace when any Database for PostgreSQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Database for PostgreSQL to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DBforPostgreSQL/servers' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DBforPostgreSQL/servers/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'PostgreSQLLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'QueryStoreRuntimeStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'QueryStoreWaitStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-PostgreSQL' + } + { + properties: { + Description: 'This policy denies creation of Postgre SQL DB accounts with exposed public endpoints' + DisplayName: 'Public network access should be disabled for PostgreSql' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.DBforPostgreSQL/servers' + } + { + field: 'Microsoft.DBforPostgreSQL/servers/publicNetworkAccess' + notequals: 'Disabled' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-PostgreSql' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Power BI Embedded to stream to a Log Analytics workspace when any Power BI Embedded which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Power BI Embedded to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.PowerBIDedicated/capacities' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.PowerBIDedicated/capacities/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Engine' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-PowerBIEmbedded' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Recovery Services vaults to stream to a Log Analytics workspace when any Recovery Services vaults which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Recovery Services vaults to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.RecoveryServices/vaults' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allof: [ + { + count: { + field: 'Microsoft.Insights/diagnosticSettings/logs[*]' + where: { + allof: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs[*].Category' + in: [ + 'CoreAzureBackup' + 'AddonAzureBackupJobs' + 'AddonAzureBackupAlerts' + 'AddonAzureBackupPolicy' + 'AddonAzureBackupStorage' + 'AddonAzureBackupProtectedInstance' + 'AzureBackupReport' + ] + } + { + field: 'Microsoft.Insights/diagnosticSettings/logs[*].Enabled' + equals: 'True' + } + ] + } + } + Equals: 7 + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + { + field: 'Microsoft.Insights/diagnosticSettings/logAnalyticsDestinationType' + equals: 'Dedicated' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.RecoveryServices/vaults/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + logAnalyticsDestinationType: 'Dedicated' + metrics: [] + logs: [ + { + category: 'CoreAzureBackup' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AddonAzureBackupAlerts' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AddonAzureBackupJobs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AddonAzureBackupPolicy' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AddonAzureBackupProtectedInstance' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AddonAzureBackupStorage' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AzureBackupReport' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-RecoveryVault' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Redis Cache to stream to a Log Analytics workspace when any Redis Cache which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Redis Cache to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Cache/redis' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Cache/redis/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-RedisCache' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Relay to stream to a Log Analytics workspace when any Relay which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Relay to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Relay/namespaces' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Relay/namespaces/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'HybridConnectionsEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-Relay' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Search Services to stream to a Log Analytics workspace when any Search Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Search Services to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Search/searchServices' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Search/searchServices/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'OperationLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-SearchServices' + } + { + properties: { + Description: 'Deploys the diagnostic settings for ServiceBus to stream to a Log Analytics workspace when any ServiceBus which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Service Bus namespaces to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.ServiceBus/namespaces' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.ServiceBus/namespaces/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'OperationalLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-ServiceBus' + } + { + properties: { + Description: 'Deploys the diagnostic settings for SignalR to stream to a Log Analytics workspace when any SignalR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for SignalR to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.SignalRService/SignalR' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.SignalRService/SignalR/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'AllLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-SignalR' + } + { + properties: { + Description: 'Deploy auditing settings to SQL Database when it not exist in the deployment' + DisplayName: 'Deploy SQL database auditing settings' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/servers/databases' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Sql/servers/databases/auditingSettings' + name: 'default' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Sql/servers/databases/auditingSettings/state' + equals: 'enabled' + } + { + field: 'Microsoft.Sql/servers/databases/auditingSettings/isAzureMonitorTargetEnabled' + equals: 'true' + } + ] + } + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + location: { + type: 'string' + } + sqlServerName: { + type: 'string' + } + sqlServerDataBaseName: { + type: 'string' + } + } + variables: {} + resources: [ + { + name: '[concat( parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/default\')]' + type: 'Microsoft.Sql/servers/databases/auditingSettings' + apiVersion: '2017-03-01-preview' + properties: { + state: 'enabled' + auditActionsAndGroups: [ + 'BATCH_COMPLETED_GROUP' + 'DATABASE_OBJECT_CHANGE_GROUP' + 'SCHEMA_OBJECT_CHANGE_GROUP' + 'BACKUP_RESTORE_GROUP' + 'APPLICATION_ROLE_CHANGE_PASSWORD_GROUP' + 'DATABASE_PRINCIPAL_CHANGE_GROUP' + 'DATABASE_PRINCIPAL_IMPERSONATION_GROUP' + 'DATABASE_ROLE_MEMBER_CHANGE_GROUP' + 'USER_CHANGE_PASSWORD_GROUP' + 'DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP' + 'DATABASE_OBJECT_PERMISSION_CHANGE_GROUP' + 'DATABASE_PERMISSION_CHANGE_GROUP' + 'SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP' + 'SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP' + 'FAILED_DATABASE_AUTHENTICATION_GROUP' + ] + isAzureMonitorTargetEnabled: true + } + } + ] + outputs: {} + } + parameters: { + location: { + value: '[field(\'location\')]' + } + sqlServerName: { + value: '[first(split(field(\'fullname\'),\'/\'))]' + } + sqlServerDataBaseName: { + value: '[field(\'name\')]' + } + } + } + } + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3' + ] + } + } + } + } + name: 'Deploy-Sql-AuditingSettings' + } + { + properties: { + Description: 'Deploy the Transparent Data Encryption when it is not enabled in the deployment' + DisplayName: 'Deploy SQL Database Transparent Data Encryption ' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/servers/databases' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Sql/servers/databases/transparentDataEncryption' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Sql/transparentDataEncryption.status' + equals: 'Enabled' + } + ] + } + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + location: { + type: 'string' + } + sqlServerName: { + type: 'string' + } + sqlServerDataBaseName: { + type: 'string' + } + } + variables: {} + resources: [ + { + name: '[concat( parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/current\')]' + type: 'Microsoft.Sql/servers/databases/transparentDataEncryption' + apiVersion: '2014-04-01' + properties: { + status: 'Enabled' + } + } + ] + outputs: {} + } + parameters: { + location: { + value: '[field(\'location\')]' + } + sqlServerName: { + value: '[first(split(field(\'fullname\'),\'/\'))]' + } + sqlServerDataBaseName: { + value: '[field(\'name\')]' + } + } + } + } + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3' + ] + } + } + } + } + name: 'Deploy-Sql-Tde' + } + { + properties: { + Description: 'Deploy the security Alert Policies configuration with email admin accounts when it not exist in current configuration' + DisplayName: 'Deploy SQL Database security Alert Policies configuration with email admin accounts' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/servers/databases' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Sql/servers/databases/securityAlertPolicies' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Sql/servers/databases/securityAlertPolicies/state' + equals: 'Enabled' + } + ] + } + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + location: { + type: 'string' + } + sqlServerName: { + type: 'string' + } + sqlServerDataBaseName: { + type: 'string' + } + } + variables: {} + resources: [ + { + name: '[concat(parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/default\')]' + type: 'Microsoft.Sql/servers/databases/securityAlertPolicies' + apiVersion: '2018-06-01-preview' + properties: { + state: 'Enabled' + disabledAlerts: [ + '' + ] + emailAddresses: [ + 'admin@contoso.com' + ] + emailAccountAdmins: true + storageEndpoint: null + storageAccountAccessKey: '' + retentionDays: 0 + } + } + ] + outputs: {} + } + parameters: { + location: { + value: '[field(\'location\')]' + } + sqlServerName: { + value: '[first(split(field(\'fullname\'),\'/\'))]' + } + sqlServerDataBaseName: { + value: '[field(\'name\')]' + } + } + } + } + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3' + ] + } + } + } + } + name: 'Deploy-Sql-SecurityAlertPolicies' + } + { + properties: { + Description: 'Deploy SQL Database vulnerability Assessments when it not exist in the deployment. To the specific storage account in the parameters' + DisplayName: 'Deploy SQL Database vulnerability Assessments' + Mode: 'Indexed' + Parameters: { + vulnerabilityAssessmentsEmail: { + type: 'String' + metadata: { + description: 'The email address to send alerts' + displayName: 'The email address to send alerts' + } + } + vulnerabilityAssessmentsStorageID: { + type: 'String' + metadata: { + description: 'The storage account to store assessments' + displayName: 'The storage account to store assessments' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/servers/databases' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Sql/servers/databases/vulnerabilityAssessments' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Sql/servers/databases/vulnerabilityAssessments/recurringScans.emails' + equals: '[parameters(\'vulnerabilityAssessmentsEmail\')]' + } + { + field: 'Microsoft.Sql/servers/databases/vulnerabilityAssessments/recurringScans.isEnabled' + equals: true + } + ] + } + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + location: { + type: 'string' + } + sqlServerName: { + type: 'string' + } + sqlServerDataBaseName: { + type: 'string' + } + vulnerabilityAssessmentsEmail: { + type: 'string' + } + vulnerabilityAssessmentsStorageID: { + type: 'string' + } + } + variables: {} + resources: [ + { + name: '[concat(parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/default\')]' + type: 'Microsoft.Sql/servers/databases/vulnerabilityAssessments' + apiVersion: '2017-03-01-preview' + properties: { + storageContainerPath: '[concat(\'https://\', last( split(parameters(\'vulnerabilityAssessmentsStorageID\') , \'/\') ) , \'.blob.core.windows.net/vulneraabilitylogs\')]' + storageAccountAccessKey: '[listkeys(parameters(\'vulnerabilityAssessmentsStorageID\'), providers(\'Microsoft.Storage\', \'storageAccounts\').apiVersions[0]).keys[0].value]' + recurringScans: { + isEnabled: true + emailSubscriptionAdmins: false + emails: [ + '[parameters(\'vulnerabilityAssessmentsEmail\')]' + ] + } + } + } + ] + outputs: {} + } + parameters: { + location: { + value: '[field(\'location\')]' + } + sqlServerName: { + value: '[first(split(field(\'fullname\'),\'/\'))]' + } + sqlServerDataBaseName: { + value: '[field(\'name\')]' + } + vulnerabilityAssessmentsEmail: { + value: '[parameters(\'vulnerabilityAssessmentsEmail\')]' + } + vulnerabilityAssessmentsStorageID: { + value: '[parameters(\'vulnerabilityAssessmentsStorageID\')]' + } + } + } + } + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3' + '/providers/Microsoft.Authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + ] + } + } + } + } + name: 'Deploy-Sql-vulnerabilityAssessments' + } + { + properties: { + Description: 'Deploys the diagnostic settings for SQL Databases to stream to a Log Analytics workspace when any SQL Databases which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for SQL Databases to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/servers/databases' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Sql/servers/databases/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'SQLInsights' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AutomaticTuning' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DevOpsOperationsAudit' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'QueryStoreRuntimeStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'QueryStoreWaitStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Errors' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DatabaseWaitStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Timeouts' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Blocks' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Deadlocks' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SQLSecurityAuditEvents' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'fullName\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-SQLDBs' + } + { + properties: { + Description: 'Deploys the diagnostic settings for SQL Elastic Pools to stream to a Log Analytics workspace when any SQL Elastic Pools which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for SQL Elastic Pools to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/servers/elasticPools' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Sql/servers/elasticPools/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'fullName\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-SQLElasticPools' + } + { + properties: { + Description: 'Deploys the diagnostic settings for SQL Managed Instances to stream to a Log Analytics workspace when any SQL Managed Instances which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for SQL Managed Instances to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/managedInstances' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Sql/managedInstances/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + logs: [ + { + category: 'ResourceUsageStats' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SQLSecurityAuditEvents' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DevOpsOperationsAudit' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-SQLMI' + } + { + properties: { + Description: 'This policy denies creation of Sql servers with exposed public endpoints' + DisplayName: 'Public network access on Azure SQL Database should be disabled' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Sql/servers' + } + { + field: 'Microsoft.Sql/servers/publicNetworkAccess' + notequals: 'Disabled' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-Sql' + } + { + properties: { + Description: 'This policy denies creation of storage accounts with IP Firewall exposed to all public endpoints' + DisplayName: 'Public network access onStorage accounts should be disabled' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Storage' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Storage/storageAccounts' + } + { + field: 'Microsoft.Storage/storageAccounts/networkAcls.defaultAction' + notequals: 'Deny' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-Storage' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Stream Analytics to stream to a Log Analytics workspace when any Stream Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Stream Analytics to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.StreamAnalytics/streamingjobs' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.StreamAnalytics/streamingjobs/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Execution' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Authoring' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-StreamAnalytics' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Time Series Insights to stream to a Log Analytics workspace when any Time Series Insights which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Time Series Insights to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.TimeSeriesInsights/environments' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.TimeSeriesInsights/environments/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Ingress' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Management' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-TimeSeriesInsights' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Traffic Manager to stream to a Log Analytics workspace when any Traffic Manager which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Traffic Manager to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/trafficManagerProfiles' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/trafficManagerProfiles/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'ProbeHealthStatusEvents' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-TrafficManager' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Virtual Machines to stream to a Log Analytics workspace when any Virtual Machines which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Virtual Machines to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Compute/virtualMachines' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Compute/virtualMachines/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-VM' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Virtual Network to stream to a Log Analytics workspace when any Virtual Network which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Virtual Network to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/virtualNetworks' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualNetworks/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + logs: [ + { + category: 'VMProtectionAlerts' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-VirtualNetwork' + } + { + properties: { + Description: 'Deploys Virtual Network to be used as hub virtual network in desired region in the subscription where this policy is assigned.' + DisplayName: 'Deploy Virtual Network to be used as hub virtual network in desired region' + Mode: 'Indexed' + Parameters: { + hubName: { + type: 'String' + metadata: { + displayName: 'hubName' + description: 'Name of the Hub' + } + } + HUB: { + type: 'Object' + metadata: { + displayName: 'HUB' + description: 'Object describing HUB' + } + } + vpngw: { + type: 'Object' + metadata: { + displayName: 'vpngw' + description: 'Object describing VPN gateway' + } + defaultValue: {} + } + ergw: { + type: 'Object' + metadata: { + displayName: 'ergw' + description: 'Object describing ExpressRoute gateway' + } + defaultValue: {} + } + azfw: { + type: 'Object' + metadata: { + displayName: 'ergw' + description: 'Object describing ExpressRoute gateway' + } + defaultValue: {} + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/virtualNetworks' + name: '[parameters(\'hubName\')]' + deploymentScope: 'Subscription' + existenceScope: 'ResourceGroup' + ResourceGroupName: '[parameters(\'rgName\')]' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + rgName: { + value: '[parameters(\'rgName\')]' + } + hubName: { + value: '[parameters(\'hubName\')]' + } + HUB: { + value: '[parameters(\'HUB\')]' + } + vpngw: { + value: '[parameters(\'vpngw\')]' + } + ergw: { + value: '[parameters(\'ergw\')]' + } + azfw: { + value: '[parameters(\'azfw\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + hubName: { + type: 'string' + metadata: { + description: 'Name of the HUB' + } + } + HUB: { + type: 'object' + metadata: { + description: 'Object describing HUB' + } + } + vpngw: { + type: 'object' + defaultValue: {} + metadata: { + description: 'Object describing VPN gateway' + } + } + ergw: { + type: 'object' + defaultValue: {} + metadata: { + description: 'Object describing ExpressRoute gateway' + } + } + azfw: { + type: 'object' + defaultValue: {} + metadata: { + description: 'Object describing the Azure Firewall' + } + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2020-06-01' + name: '[parameters(\'rgName\')]' + location: '[deployment().location]' + properties: {} + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https: //schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + name: '[parameters(\'hubName\')]' + type: 'Microsoft.Network/virtualNetworks' + apiVersion: '2020-04-01' + location: '[parameters(\'HUB\').location]' + properties: { + addressSpace: { + addressPrefixes: [ + '[parameters(\'HUB\').addressPrefix]' + ] + } + subnets: [ + { + name: 'Infrastructure' + properties: { + addressPrefix: '[if(not(empty(parameters(\'HUB\').subnets.infra)),parameters(\'HUB\').subnets.infra, json(\'null\'))]' + } + } + { + name: 'AzureFirewallSubnet' + properties: { + addressPrefix: '[if(not(empty(parameters(\'HUB\').subnets.azfw)),parameters(\'HUB\').subnets.azfw, json(\'null\'))]' + } + } + { + name: 'GatewaySubnet' + properties: { + addressPrefix: '[if(not(empty(parameters(\'HUB\').subnets.gw)),parameters(\'HUB\').subnets.gw, json(\'null\'))]' + } + } + ] + } + } + ] + } + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + condition: '[greater(length(parameters(\'vpngw\')),0)]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]' + ] + name: '[concat(parameters(\'hubName\'),\'-vpngw\')]' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + apiVersion: '2020-05-01' + type: 'Microsoft.Network/publicIpAddresses' + location: '[parameters(\'HUB\').location]' + name: '[concat(parameters(\'vpngw\').name,\'-pip\')]' + properties: { + publicIPAllocationMethod: 'Dynamic' + } + tags: {} + } + { + apiVersion: '2020-05-01' + name: '[parameters(\'vpngw\').name]' + type: 'Microsoft.Network/virtualNetworkGateways' + location: '[parameters(\'HUB\').location]' + dependsOn: [ + '[concat(\'Microsoft.Network/publicIPAddresses/\', parameters(\'vpngw\').name,\'-pip\')]' + ] + tags: {} + properties: { + gatewayType: 'Vpn' + vpnType: '[parameters(\'vpngw\').vpnType]' + ipConfigurations: [ + { + name: 'default' + properties: { + privateIPAllocationMethod: 'Dynamic' + subnet: { + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/virtualNetworks/\', parameters(\'hubName\'),\'/subnets/GatewaySubnet\')]' + } + publicIpAddress: { + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/publicIPAddresses/\', parameters(\'vpngw\').name,\'-pip\')]' + } + } + } + ] + sku: { + name: '[parameters(\'vpngw\').sku]' + tier: '[parameters(\'vpngw\').sku]' + } + } + } + ] + } + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + condition: '[greater(length(parameters(\'ergw\')),0)]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]' + ] + name: '[concat(parameters(\'hubName\'),\'-ergw\')]' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + apiVersion: '2020-05-01' + type: 'Microsoft.Network/publicIpAddresses' + location: '[parameters(\'HUB\').location]' + name: '[concat(parameters(\'ergw\').name,\'-pip\')]' + properties: { + publicIPAllocationMethod: 'Dynamic' + } + tags: {} + } + { + apiVersion: '2020-05-01' + name: '[parameters(\'ergw\').name]' + type: 'Microsoft.Network/virtualNetworkGateways' + location: '[parameters(\'HUB\').location]' + dependsOn: [ + '[concat(\'Microsoft.Network/publicIPAddresses/\', parameters(\'ergw\').name,\'-pip\')]' + ] + tags: {} + properties: { + gatewayType: 'ExpressRoute' + ipConfigurations: [ + { + name: 'default' + properties: { + privateIPAllocationMethod: 'Dynamic' + subnet: { + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/virtualNetworks/\', parameters(\'hubName\'),\'/subnets/GatewaySubnet\')]' + } + publicIpAddress: { + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/publicIPAddresses/\', parameters(\'ergw\').name,\'-pip\')]' + } + } + } + ] + sku: { + name: '[parameters(\'ergw\').sku]' + tier: '[parameters(\'ergw\').sku]' + } + } + } + ] + } + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + condition: '[greater(length(parameters(\'azfw\')),0)]' + name: '[concat(parameters(\'hubName\'),\'-azfw\')]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + apiVersion: '2020-05-01' + type: 'Microsoft.Network/publicIpAddresses' + name: '[concat(parameters(\'azfw\').name,\'-pip\')]' + location: '[parameters(\'azfw\').location]' + sku: { + name: 'Standard' + } + zones: '[if(contains(parameters(\'azfw\'),\'pipZones\'),parameters(\'azfw\').pipZones,json(\'null\'))]' + properties: { + publicIPAllocationMethod: 'Static' + } + tags: {} + } + { + apiVersion: '2020-05-01' + type: 'Microsoft.Network/azureFirewalls' + name: '[parameters(\'azfw\').name]' + location: '[parameters(\'azfw\').location]' + zones: '[if(contains(parameters(\'azfw\'),\'fwZones\'),parameters(\'azfw\').fwZones,json(\'null\'))]' + dependsOn: [ + '[concat(parameters(\'azfw\').name,\'-pip\')]' + ] + properties: { + threatIntelMode: '[parameters(\'azfw\').threatIntelMode]' + additionalProperties: '[if(contains(parameters(\'azfw\'),\'additionalProperties\'),parameters(\'azfw\').additionalProperties,json(\'null\'))]' + sku: '[if(contains(parameters(\'azfw\'),\'sku\'),parameters(\'azfw\').sku,json(\'null\'))]' + ipConfigurations: [ + { + name: '[concat(parameters(\'azfw\').name,\'-pip\')]' + properties: { + subnet: { + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/virtualNetworks/\', parameters(\'hubName\'),\'/subnets/AzureFirewallSubnet\')]' + } + publicIPAddress: { + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/publicIPAddresses/\', parameters(\'azfw\').name,\'-pip\')]' + } + } + } + ] + firewallPolicy: '[if(contains(parameters(\'azfw\'),\'firewallPolicy\'),parameters(\'azfw\').firewallPolicy,json(\'null\'))]' + } + tags: {} + } + ] + } + } + } + ] + } + } + } + } + } + } + } + name: 'Deploy-HUB' + } + { + properties: { + Description: 'Deploy spoke network with configuration to hub network based on ipam configuration object' + DisplayName: 'Deploy spoke network with configuration to hub network based on ipam configuration object' + Mode: 'Indexed' + Parameters: { + ipam: { + type: 'Array' + metadata: { + displayName: 'ipam' + description: null + } + defaultValue: [] + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Resources/resourceGroups' + deploymentScope: 'Subscription' + existenceScope: 'Subscription' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + existenceCondition: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions/resourceGroups' + } + { + field: 'name' + like: '[concat(subscription().displayName, \'-network\')]' + } + ] + } + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + ipam: { + value: '[parameters(\'ipam\')]' + defaultValue: [] + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + ipam: { + defaultValue: [ + { + name: 'bu1-weu-msx3-vNet1' + location: 'westeurope' + virtualNetworks: { + properties: { + addressSpace: { + addressPrefixes: [ + '10.51.217.0/24' + ] + } + } + } + networkSecurityGroups: { + properties: { + securityRules: [] + } + } + routeTables: { + properties: { + routes: [] + } + } + hubVirtualNetworkConnection: { + vWanVhubResourceId: '/subscriptions/99c2838f-a548-4884-a6e2-38c1f8fb4c0b/resourceGroups/contoso-global-vwan/providers/Microsoft.Network/virtualHubs/contoso-vhub-weu' + properties: { + allowHubToRemoteVnetTransit: true + allowRemoteVnetToUseHubVnetGateways: false + enableInternetSecurity: true + } + } + } + ] + type: 'Array' + } + } + variables: { + vNetRgName: '[concat(subscription().displayName, \'-network\')]' + vNetName: '[concat(subscription().displayName, \'-vNet\')]' + vNetSubId: '[subscription().subscriptionId]' + } + resources: [ + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-ipam-\',subscription().displayName,\'-RG-\',copyIndex())]' + location: '[parameters(\'ipam\')[copyIndex()].location]' + dependsOn: [] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2020-06-01' + name: '[variables(\'vNetRgName\')]' + location: '[parameters(\'ipam\')[copyIndex()].location]' + properties: {} + } + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2020-06-01' + name: 'NetworkWatcherRG' + location: '[parameters(\'ipam\')[copyIndex()].location]' + properties: {} + } + ] + outputs: {} + } + } + copy: { + name: 'ipam-rg-loop' + count: '[length(parameters(\'ipam\'))]' + } + condition: '[if(and(not(empty(parameters(\'ipam\'))), equals(toLower(parameters(\'ipam\')[copyIndex()].name),toLower(variables(\'vNetName\')))),bool(\'true\'),bool(\'false\'))]' + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-ipam-\',subscription().displayName,\'-nsg-udr-vnet-hub-vwan-peering-\',copyIndex())]' + dependsOn: [ + '[concat(\'es-ipam-\',subscription().displayName,\'-RG-\',copyIndex())]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + condition: '[contains(parameters(\'ipam\')[copyIndex()],\'networkSecurityGroups\')]' + apiVersion: '2020-05-01' + type: 'Microsoft.Network/networkSecurityGroups' + name: '[concat(subscription().displayName, \'-nsg\')]' + location: '[parameters(\'ipam\')[copyIndex()].location]' + properties: '[if(contains(parameters(\'ipam\')[copyIndex()],\'networkSecurityGroups\'),parameters(\'ipam\')[copyIndex()].networkSecurityGroups.properties,json(\'null\'))]' + } + { + condition: '[contains(parameters(\'ipam\')[copyIndex()],\'routeTables\')]' + apiVersion: '2020-05-01' + type: 'Microsoft.Network/routeTables' + name: '[concat(subscription().displayName, \'-udr\')]' + location: '[parameters(\'ipam\')[copyIndex()].location]' + properties: '[if(contains(parameters(\'ipam\')[copyIndex()],\'routeTables\'),parameters(\'ipam\')[copyIndex()].routeTables.properties,json(\'null\'))]' + } + { + condition: '[contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\')]' + type: 'Microsoft.Network/virtualNetworks' + apiVersion: '2020-05-01' + name: '[concat(subscription().displayName, \'-vnet\')]' + location: '[parameters(\'ipam\')[copyIndex()].location]' + dependsOn: [ + '[concat(subscription().displayName, \'-nsg\')]' + '[concat(subscription().displayName, \'-udr\')]' + ] + properties: '[if(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\'),parameters(\'ipam\')[copyIndex()].virtualNetworks.properties,json(\'null\'))]' + } + { + condition: '[contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\')]' + type: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' + apiVersion: '2020-05-01' + name: '[concat(variables(\'vNetName\'), \'/peerToHub\')]' + dependsOn: [ + '[concat(subscription().displayName, \'-vnet\')]' + ] + properties: '[if(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties,json(\'null\'))]' + } + { + condition: '[and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\'),contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\'))]' + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-ipam-vWan-\',subscription().displayName,\'-peering-\',copyIndex())]' + subscriptionId: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),split(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,\'/\')[2],json(\'null\'))]' + resourceGroup: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),split(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,\'/\')[4],json(\'null\'))]' + dependsOn: [ + '[concat(subscription().displayName, \'-vnet\')]' + ] + properties: { + mode: 'Incremental' + expressionEvaluationOptions: { + scope: 'inner' + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + remoteVirtualNetwork: { + type: 'string' + } + vWanVhubName: { + Type: 'string' + defaultValue: '' + } + allowHubToRemoteVnetTransit: { + Type: 'bool' + defaultValue: true + } + allowRemoteVnetToUseHubVnetGateways: { + Type: 'bool' + defaultValue: false + } + enableInternetSecurity: { + Type: 'bool' + defaultValue: true + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualHubs/hubVirtualNetworkConnections' + apiVersion: '2020-05-01' + name: '[[concat(parameters(\'vWanVhubName\'),\'/\',last(split(parameters(\'remoteVirtualNetwork\'),\'/\')))]' + properties: { + remoteVirtualNetwork: { + id: '[[parameters(\'remoteVirtualNetwork\')]' + } + allowHubToRemoteVnetTransit: '[[parameters(\'allowHubToRemoteVnetTransit\')]' + allowRemoteVnetToUseHubVnetGateways: '[[parameters(\'allowRemoteVnetToUseHubVnetGateways\')]' + enableInternetSecurity: '[[parameters(\'enableInternetSecurity\')]' + } + } + ] + outputs: {} + } + parameters: { + remoteVirtualNetwork: { + value: '[concat(subscription().id,\'/resourceGroups/\',variables(\'vNetRgName\'), \'/providers/\',\'Microsoft.Network/virtualNetworks/\', concat(subscription().displayName, \'-vnet\'))]' + } + vWanVhubName: { + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),split(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,\'/\')[8],json(\'null\'))]' + } + allowHubToRemoteVnetTransit: { + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.properties.allowHubToRemoteVnetTransit,json(\'null\'))]' + } + allowRemoteVnetToUseHubVnetGateways: { + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.properties.allowRemoteVnetToUseHubVnetGateways,json(\'null\'))]' + } + enableInternetSecurity: { + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.properties.enableInternetSecurity,json(\'null\'))]' + } + } + } + } + { + condition: '[and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\'),contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\'))]' + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-ipam-hub-\',subscription().displayName,\'-peering-\',copyIndex())]' + subscriptionId: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\')),split(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,\'/\')[2],json(\'null\'))]' + resourceGroup: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\')),split(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,\'/\')[4],json(\'null\'))]' + dependsOn: [ + '[concat(subscription().displayName, \'-vnet\')]' + ] + properties: { + mode: 'Incremental' + expressionEvaluationOptions: { + scope: 'inner' + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + remoteVirtualNetwork: { + Type: 'string' + defaultValue: false + } + hubName: { + Type: 'string' + defaultValue: false + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' + name: '[[concat(parameters(\'hubName\'),\'/\',last(split(parameters(\'remoteVirtualNetwork\'),\'/\')))]' + apiVersion: '2020-05-01' + properties: { + allowVirtualNetworkAccess: true + allowForwardedTraffic: true + allowGatewayTransit: true + useRemoteGateways: false + remoteVirtualNetwork: { + id: '[[parameters(\'remoteVirtualNetwork\')]' + } + } + } + ] + outputs: {} + } + parameters: { + remoteVirtualNetwork: { + value: '[concat(subscription().id,\'/resourceGroups/\',variables(\'vNetRgName\'), \'/providers/\',\'Microsoft.Network/virtualNetworks/\', concat(subscription().displayName, \'-vnet\'))]' + } + hubName: { + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\')),split(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,\'/\')[8],json(\'null\'))]' + } + } + } + } + ] + outputs: {} + } + } + resourceGroup: '[variables(\'vNetRgName\')]' + copy: { + name: 'ipam-loop' + count: '[length(parameters(\'ipam\'))]' + } + condition: '[if(and(not(empty(parameters(\'ipam\'))), equals(toLower(parameters(\'ipam\')[copyIndex()].name),toLower(variables(\'vNetName\')))),bool(\'true\'),bool(\'false\'))]' + } + ] + outputs: { + ipam: { + condition: '[bool(\'true\')]' + type: 'Int' + value: '[length(parameters(\'ipam\'))]' + } + } + } + } + } + } + } + } + } + name: 'Deploy-vNet' + } + { + properties: { + Description: 'Deploy the Virtual WAN in the specific region.' + DisplayName: 'Deploy the Virtual WAN in the specific region' + Mode: 'Indexed' + Parameters: { + vwanname: { + type: 'String' + metadata: { + displayName: 'vwanname' + description: 'Name of the Virtual WAN' + } + } + vwanRegion: { + type: 'String' + metadata: { + displayName: 'vwanRegion' + description: 'Select Azure region for Virtual WAN' + strongType: 'location' + } + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/virtualWans' + deploymentScope: 'Subscription' + existenceScope: 'ResourceGroup' + name: '[parameters(\'vwanname\')]' + resourceGroupName: '[parameters(\'rgName\')]' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' + ] + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + rgName: { + value: '[parameters(\'rgName\')]' + } + vwanname: { + value: '[parameters(\'vwanname\')]' + } + vwanRegion: { + value: '[parameters(\'vwanRegion\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + rgName: { + type: 'string' + } + vwanname: { + type: 'string' + } + vwanRegion: { + type: 'string' + } + } + variables: { + vwansku: 'Standard' + } + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2018-05-01' + name: '[parameters(\'rgName\')]' + location: '[deployment().location]' + properties: {} + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + name: 'vwan' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: {} + resources: [ + { + type: 'Microsoft.Network/virtualWans' + apiVersion: '2020-05-01' + location: '[parameters(\'vwanRegion\')]' + name: '[parameters(\'vwanname\')]' + properties: { + virtualHubs: [] + vpnSites: [] + type: '[variables(\'vwansku\')]' + } + } + ] + outputs: {} + } + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-vWAN' + } + { + properties: { + Description: 'Deploy Virtual Hub network with Virtual Wan and Gateway and Firewall configured in the desired region. ' + DisplayName: 'Deploy Virtual Hub network with Virtual Wan and Gateway and Firewall configured.' + Mode: 'Indexed' + Parameters: { + vwanname: { + type: 'String' + metadata: { + displayName: 'vwanname' + description: 'Name of the Virtual WAN' + } + } + vHubName: { + type: 'String' + metadata: { + displayName: 'vHubName' + description: 'Name of the vHUB' + } + defaultValue: '' + } + vHUB: { + type: 'Object' + metadata: { + displayName: 'vHUB' + description: 'Object describing Virtual WAN vHUB' + } + } + vpngw: { + type: 'Object' + metadata: { + displayName: 'vpngw' + description: 'Object describing VPN gateway' + } + defaultValue: {} + } + ergw: { + type: 'Object' + metadata: { + displayName: 'ergw' + description: 'Object describing ExpressRoute gateway' + } + defaultValue: {} + } + azfw: { + type: 'Object' + metadata: { + displayName: 'azfw' + description: 'Object describing the Azure Firewall in vHUB' + } + defaultValue: {} + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/virtualHubs' + name: '[parameters(\'vHubName\')]' + deploymentScope: 'Subscription' + existenceScope: 'ResourceGroup' + ResourceGroupName: '[parameters(\'rgName\')]' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' + ] + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + rgName: { + value: '[parameters(\'rgName\')]' + } + vwanname: { + value: '[parameters(\'vwanname\')]' + } + vHUB: { + value: '[parameters(\'vHUB\')]' + } + vpngw: { + value: '[parameters(\'vpngw\')]' + } + ergw: { + value: '[parameters(\'ergw\')]' + } + azfw: { + value: '[parameters(\'azfw\')]' + } + vHUBName: { + value: '[parameters(\'vHUBName\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + vwanname: { + type: 'string' + metadata: { + description: 'Name of the Virtual WAN' + } + } + vHUB: { + type: 'object' + metadata: { + description: 'Object describing Virtual WAN vHUB' + } + } + vpngw: { + type: 'object' + defaultValue: {} + metadata: { + description: 'Object describing VPN gateway' + } + } + ergw: { + type: 'object' + defaultValue: {} + metadata: { + description: 'Object describing ExpressRoute gateway' + } + } + azfw: { + type: 'object' + defaultValue: {} + metadata: { + description: 'Object describing the Azure Firewall in vHUB' + } + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + vHUBName: { + type: 'String' + metadata: { + displayName: 'vHUBName' + description: 'Name of the vHUB' + } + } + } + variables: { + vhubsku: 'Standard' + vwanresourceid: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'),\'/providers/Microsoft.Network/virtualWans/\',parameters(\'vwanname\'))]' + vwanhub: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'),\'/providers/Microsoft.Network/virtualHubs/\',parameters(\'vHUBName\'))]' + } + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2018-05-01' + name: '[parameters(\'rgName\')]' + location: '[deployment().location]' + properties: {} + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + name: '[concat(\'vHUBdeploy-\',parameters(\'vHUB\').location)]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualHubs' + apiVersion: '2020-05-01' + location: '[parameters(\'vHUB\').location]' + name: '[parameters(\'vHUBname\')]' + properties: { + virtualWan: { + id: '[variables(\'vwanresourceid\')]' + } + addressPrefix: '[parameters(\'vHUB\').addressPrefix]' + sku: '[variables(\'vhubsku\')]' + } + } + ] + } + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + condition: '[greater(length(parameters(\'vpngw\')),0)]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[concat(\'vHUBdeploy-\',parameters(\'vHUB\').location)]' + ] + name: '[concat(parameters(\'vHUBName\'),\'-vpngw\')]' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Network/vpnGateways' + apiVersion: '2020-05-01' + location: '[parameters(\'vHUB\').location]' + name: '[parameters(\'vpngw\').name]' + properties: { + virtualHub: { + id: '[variables(\'vwanhub\')]' + } + bgpSettings: '[parameters(\'vpngw\').bgpSettings]' + vpnGatewayScaleUnit: '[parameters(\'vpngw\').vpnGatewayScaleUnit]' + } + } + ] + } + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + condition: '[greater(length(parameters(\'ergw\')),0)]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[concat(\'vHUBdeploy-\',parameters(\'vHUB\').location)]' + ] + name: '[concat(parameters(\'vHUBName\'),\'-ergw\')]' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Network/expressRouteGateways' + apiVersion: '2020-05-01' + location: '[parameters(\'vHUB\').location]' + name: '[parameters(\'ergw\').name]' + properties: { + virtualHub: { + id: '[variables(\'vwanhub\')]' + } + autoScaleConfiguration: '[parameters(\'ergw\').autoScaleConfiguration]' + } + } + ] + } + } + } + ] + } + } + } + } + } + } + } + name: 'Deploy-vHUB' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Virtual Machine Scale Sets to stream to a Log Analytics workspace when any Virtual Machine Scale Sets which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Virtual Machine Scale Sets to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Compute/virtualMachineScaleSets' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Compute/virtualMachineScaleSets/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-VMSS' + } + { + properties: { + Description: 'Deploys the diagnostic settings for VPN Gateway to stream to a Log Analytics workspace when any VPN Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.' + DisplayName: 'Deploy Diagnostic Settings for VPN Gateway to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/virtualNetworkGateways' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualNetworkGateways/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'GatewayDiagnosticLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'IKEDiagnosticLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'P2SDiagnosticLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'RouteDiagnosticLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'RouteDiagnosticLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'TunnelDiagnosticLog' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-VNetGW' + } + { + properties: { + Description: 'Deploy Windows Domain Join Extension with keyvault configuration when the extension does not exist on a given windows Virtual Machine' + DisplayName: 'Deploy Windows Domain Join Extension with keyvault configuration' + Mode: 'Indexed' + Parameters: { + domainUsername: { + type: 'String' + metadata: { + displayName: 'domainUsername' + description: null + } + } + domainPassword: { + type: 'String' + metadata: { + displayName: 'domainPassword' + description: null + } + } + domainFQDN: { + type: 'String' + metadata: { + displayName: 'domainFQDN' + description: null + } + } + domainOUPath: { + type: 'String' + metadata: { + displayName: 'domainOUPath' + description: null + } + } + keyVaultResourceId: { + type: 'String' + metadata: { + displayName: 'keyVaultResourceId' + description: null + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Guest Configuration' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Compute/virtualMachines' + } + { + field: 'Microsoft.Compute/imagePublisher' + equals: 'MicrosoftWindowsServer' + } + { + field: 'Microsoft.Compute/imageOffer' + equals: 'WindowsServer' + } + { + field: 'Microsoft.Compute/imageSKU' + in: [ + '2008-R2-SP1' + '2008-R2-SP1-smalldisk' + '2008-R2-SP1-zhcn' + '2012-Datacenter' + '2012-datacenter-gensecond' + '2012-Datacenter-smalldisk' + '2012-datacenter-smalldisk-g2' + '2012-Datacenter-zhcn' + '2012-datacenter-zhcn-g2' + '2012-R2-Datacenter' + '2012-r2-datacenter-gensecond' + '2012-R2-Datacenter-smalldisk' + '2012-r2-datacenter-smalldisk-g2' + '2012-R2-Datacenter-zhcn' + '2012-r2-datacenter-zhcn-g2' + '2016-Datacenter' + '2016-datacenter-gensecond' + '2016-datacenter-gs' + '2016-Datacenter-Server-Core' + '2016-datacenter-server-core-g2' + '2016-Datacenter-Server-Core-smalldisk' + '2016-datacenter-server-core-smalldisk-g2' + '2016-Datacenter-smalldisk' + '2016-datacenter-smalldisk-g2' + '2016-Datacenter-with-Containers' + '2016-datacenter-with-containers-g2' + '2016-Datacenter-with-RDSH' + '2016-Datacenter-zhcn' + '2016-datacenter-zhcn-g2' + '2019-Datacenter' + '2019-Datacenter-Core' + '2019-datacenter-core-g2' + '2019-Datacenter-Core-smalldisk' + '2019-datacenter-core-smalldisk-g2' + '2019-Datacenter-Core-with-Containers' + '2019-datacenter-core-with-containers-g2' + '2019-Datacenter-Core-with-Containers-smalldisk' + '2019-datacenter-core-with-containers-smalldisk-g2' + '2019-datacenter-gensecond' + '2019-datacenter-gs' + '2019-Datacenter-smalldisk' + '2019-datacenter-smalldisk-g2' + '2019-Datacenter-with-Containers' + '2019-datacenter-with-containers-g2' + '2019-Datacenter-with-Containers-smalldisk' + '2019-datacenter-with-containers-smalldisk-g2' + '2019-Datacenter-zhcn' + '2019-datacenter-zhcn-g2' + 'Datacenter-Core-1803-with-Containers-smalldisk' + 'datacenter-core-1803-with-containers-smalldisk-g2' + 'Datacenter-Core-1809-with-Containers-smalldisk' + 'datacenter-core-1809-with-containers-smalldisk-g2' + 'Datacenter-Core-1903-with-Containers-smalldisk' + 'datacenter-core-1903-with-containers-smalldisk-g2' + 'datacenter-core-1909-with-containers-smalldisk' + 'datacenter-core-1909-with-containers-smalldisk-g1' + 'datacenter-core-1909-with-containers-smalldisk-g2' + ] + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Compute/virtualMachines/extensions' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c' + ] + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Compute/virtualMachines/extensions/type' + equals: 'JsonADDomainExtension' + } + { + field: 'Microsoft.Compute/virtualMachines/extensions/publisher' + equals: 'Microsoft.Compute' + } + ] + } + deployment: { + properties: { + mode: 'incremental' + parameters: { + vmName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + domainUsername: { + reference: { + keyVault: { + id: '[parameters(\'keyVaultResourceId\')]' + } + secretName: '[parameters(\'domainUsername\')]' + } + } + domainPassword: { + reference: { + keyVault: { + id: '[parameters(\'keyVaultResourceId\')]' + } + secretName: '[parameters(\'domainPassword\')]' + } + } + domainOUPath: { + value: '[parameters(\'domainOUPath\')]' + } + domainFQDN: { + value: '[parameters(\'domainFQDN\')]' + } + keyVaultResourceId: { + value: '[parameters(\'keyVaultResourceId\')]' + } + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + vmName: { + type: 'string' + } + location: { + type: 'string' + } + domainUsername: { + type: 'string' + } + domainPassword: { + type: 'securestring' + } + domainFQDN: { + type: 'string' + } + domainOUPath: { + type: 'string' + } + keyVaultResourceId: { + type: 'string' + } + } + variables: { + domainJoinOptions: 3 + vmName: '[parameters(\'vmName\')]' + } + resources: [ + { + apiVersion: '2015-06-15' + type: 'Microsoft.Compute/virtualMachines/extensions' + name: '[concat(variables(\'vmName\'),\'/joindomain\')]' + location: '[resourceGroup().location]' + properties: { + publisher: 'Microsoft.Compute' + type: 'JsonADDomainExtension' + typeHandlerVersion: '1.3' + autoUpgradeMinorVersion: true + settings: { + Name: '[parameters(\'domainFQDN\')]' + User: '[parameters(\'domainUserName\')]' + Restart: 'true' + Options: '[variables(\'domainJoinOptions\')]' + OUPath: '[parameters(\'domainOUPath\')]' + } + protectedSettings: { + Password: '[parameters(\'domainPassword\')]' + } + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-Windows-DomainJoin' + } + ] +} +var initiatives = { + policySetDefinitions: [ + { + properties: { + Description: 'This policy set deploys the configurations of application Azure resources to forward diagnostic logs and metrics to an Azure Log Analytics workspace. See the list of policies of the services that are included ' + DisplayName: 'Deploy Diagnostic Settings to Azure Services' + Parameters: { + logAnalytics: { + metadata: { + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + displayName: 'Log Analytics workspace' + strongType: 'omsWorkspace' + } + type: 'String' + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + ACILogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Container Instances to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Container Instances to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.' + } + } + ACRLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Container Registry to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Container Registry to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.' + } + } + AKSLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Kubernetes Service to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Kubernetes Service to stream to a Log Analytics workspace when any Kubernetes Service which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.' + } + } + AnalysisServiceLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Analysis Services to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Analysis Services to stream to a Log Analytics workspace when any Analysis Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + APIMgmtLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for API Management to Log Analytics workspace' + description: 'Deploys the diagnostic settings for API Management to stream to a Log Analytics workspace when any API Management which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + ApplicationGatewayLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Application Gateway to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Application Gateway to stream to a Log Analytics workspace when any Application Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + AutomationLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Automation to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Automation to stream to a Log Analytics workspace when any Automation which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + BatchLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Batch to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Batch to stream to a Log Analytics workspace when any Batch which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + CDNEndpointsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for CDN Endpoint to Log Analytics workspace' + description: 'Deploys the diagnostic settings for CDN Endpoint to stream to a Log Analytics workspace when any CDN Endpoint which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + CognitiveServicesLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Cognitive Services to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Cognitive Services to stream to a Log Analytics workspace when any Cognitive Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + CosmosLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Cosmos DB to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Cosmos DB to stream to a Log Analytics workspace when any Cosmos DB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + DatabricksLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Databricks to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Databricks to stream to a Log Analytics workspace when any Databricks which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + DataFactoryLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Data Factory to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Data Factory to stream to a Log Analytics workspace when any Data Factory which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + DataLakeStoreLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Azure Data Lake Store to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Azure Data Lake Store to stream to a Log Analytics workspace when anyAzure Data Lake Store which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + DataLakeAnalyticsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Data Lake Analytics to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Data Lake Analytics to stream to a Log Analytics workspace when any Data Lake Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + EventGridSubLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Event Grid subscriptions to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Event Grid subscriptions to stream to a Log Analytics workspace when any Event Grid subscriptions which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + EventGridTopicLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Event Grid Topic to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Event Grid Topic to stream to a Log Analytics workspace when any Event Grid Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + EventHubLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Event Hubs to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Event Hubs to stream to a Log Analytics workspace when any Event Hubs which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + EventSystemTopicLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Event Grid System Topic to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Event Grid System Topic to stream to a Log Analytics workspace when any Event Grid System Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + ExpressRouteLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for ExpressRoute to Log Analytics workspace' + description: 'Deploys the diagnostic settings for ExpressRoute to stream to a Log Analytics workspace when any ExpressRoute which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + FirewallLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Firewall to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Firewall to stream to a Log Analytics workspace when any Firewall which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + FrontDoorLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Front Door to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Front Door to stream to a Log Analytics workspace when any Front Door which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + FunctionAppLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Azure Function App to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Azure Function App to stream to a Log Analytics workspace when any function app which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + HDInsightLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for HDInsight to Log Analytics workspace' + description: 'Deploys the diagnostic settings for HDInsight to stream to a Log Analytics workspace when any HDInsight which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + IotHubLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for IoT Hub to Log Analytics workspace' + description: 'Deploys the diagnostic settings for IoT Hub to stream to a Log Analytics workspace when any IoT Hub which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + KeyVaultLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Key Vault to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Key Vault to stream to a Log Analytics workspace when any Key Vault which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + LoadBalancerLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Load Balancer to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Load Balancer to stream to a Log Analytics workspace when any Load Balancer which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + LogicAppsISELogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Logic Apps integration service environment to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Logic Apps integration service environment to stream to a Log Analytics workspace when any Logic Apps integration service environment which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + LogicAppsWFLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Logic Apps Workflow runtime to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Logic Apps Workflow runtimeto stream to a Log Analytics workspace when any Logic Apps Workflow runtime which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + MariaDBLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for MariaDB to Log Analytics workspace' + description: 'Deploys the diagnostic settings for MariaDB to stream to a Log Analytics workspace when any MariaDB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + MlWorkspaceLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Machine Learning workspace to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Machine Learning workspace to stream to a Log Analytics workspace when any Machine Learning workspace which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + MySQLLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Database for MySQL to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Database for MySQL to stream to a Log Analytics workspace when any Database for MySQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + NetworkSecurityGroupsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Network Security Groups to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Network Security Groups to stream to a Log Analytics workspace when any Network Security Groups which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + NetworkNICLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Network Interfaces to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Network Interfaces to stream to a Log Analytics workspace when any Network Interfaces which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + PostgreSQLLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Database for PostgreSQL to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Database for PostgreSQL to stream to a Log Analytics workspace when any Database for PostgreSQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + PowerBIEmbeddedLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Power BI Embedded to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Power BI Embedded to stream to a Log Analytics workspace when any Power BI Embedded which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + NetworkPublicIPNicLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Public IP addresses to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Public IP addresses to stream to a Log Analytics workspace when any Public IP addresses which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + RecoveryVaultLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Recovery Services vaults to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Recovery Services vaults to stream to a Log Analytics workspace when any Recovery Services vaults which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + RedisCacheLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Redis Cache to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Redis Cache to stream to a Log Analytics workspace when any Redis Cache which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + RelayLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Relay to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Relay to stream to a Log Analytics workspace when any Relay which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + SearchServicesLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Search Services to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Search Services to stream to a Log Analytics workspace when any Search Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + ServiceBusLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Service Bus namespaces to Log Analytics workspace' + description: 'Deploys the diagnostic settings for ServiceBus to stream to a Log Analytics workspace when any ServiceBus which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + SignalRLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for SignalR to Log Analytics workspace' + description: 'Deploys the diagnostic settings for SignalR to stream to a Log Analytics workspace when any SignalR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + SQLDBsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for SQL Databases to Log Analytics workspace' + description: 'Deploys the diagnostic settings for SQL Databases to stream to a Log Analytics workspace when any SQL Databases which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + SQLElasticPoolsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for SQL Elastic Pools to Log Analytics workspace' + description: 'Deploys the diagnostic settings for SQL Elastic Pools to stream to a Log Analytics workspace when any SQL Elastic Pools which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + SQLMLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for SQL Managed Instances to Log Analytics workspace' + description: 'Deploys the diagnostic settings for SQL Managed Instances to stream to a Log Analytics workspace when any SQL Managed Instances which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + StreamAnalyticsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Stream Analytics to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Stream Analytics to stream to a Log Analytics workspace when any Stream Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + TimeSeriesInsightsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Time Series Insights to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Time Series Insights to stream to a Log Analytics workspace when any Time Series Insights which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + TrafficManagerLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Traffic Manager to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Traffic Manager to stream to a Log Analytics workspace when any Traffic Manager which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + VirtualNetworkLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Virtual Network to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Virtual Network to stream to a Log Analytics workspace when any Virtual Network which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + VirtualMachinesLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Virtual Machines to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Virtual Machines to stream to a Log Analytics workspace when any Virtual Machines which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + VMSSLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Virtual Machine Scale Sets to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Virtual Machine Scale Sets to stream to a Log Analytics workspace when any Virtual Machine Scale Sets which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + VNetGWLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for VPN Gateway to Log Analytics workspace' + description: 'Deploys the diagnostic settings for VPN Gateway to stream to a Log Analytics workspace when any VPN Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.' + } + } + AppServiceLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for App Service Plan to Log Analytics workspace' + description: 'Deploys the diagnostic settings for App Service Plan to stream to a Log Analytics workspace when any App Service Plan which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + AppServiceWebappLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for App Service to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Web App to stream to a Log Analytics workspace when any Web App which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + } + PolicyDefinitionGroups: null + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyDefinitions: [ + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ACI' + policyDefinitionReferenceId: 'ACIDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'ACILogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ACR' + policyDefinitionReferenceId: 'ACRDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'ACRLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AKS' + policyDefinitionReferenceId: 'AKSDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'AKSLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AnalysisService' + policyDefinitionReferenceId: 'AnalysisServiceDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'AnalysisServiceLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-APIMgmt' + policyDefinitionReferenceId: 'APIMgmtDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'APIMgmtLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ApplicationGateway' + policyDefinitionReferenceId: 'ApplicationGatewayDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'ApplicationGatewayLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AA' + policyDefinitionReferenceId: 'AutomationDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'AutomationLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Batch' + policyDefinitionReferenceId: 'BatchDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'BatchLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CDNEndpoints' + policyDefinitionReferenceId: 'CDNEndpointsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'CDNEndpointsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CognitiveServices' + policyDefinitionReferenceId: 'CognitiveServicesDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'CognitiveServicesLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CosmosDB' + policyDefinitionReferenceId: 'CosmosDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'CosmosLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Databricks' + policyDefinitionReferenceId: 'DatabricksDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'DatabricksLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DataFactory' + policyDefinitionReferenceId: 'DataFactoryDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'DataFactoryLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DataLakeStore' + policyDefinitionReferenceId: 'DataLakeStoreDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'DataLakeStoreLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DLAnalytics' + policyDefinitionReferenceId: 'DataLakeAnalyticsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'DataLakeAnalyticsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridSub' + policyDefinitionReferenceId: 'EventGridSubDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'EventGridSubLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridTopic' + policyDefinitionReferenceId: 'EventGridTopicDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'EventGridTopicLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventHub' + policyDefinitionReferenceId: 'EventHubDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'EventHubLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridSystemTopic' + policyDefinitionReferenceId: 'EventSystemTopicDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'EventSystemTopicLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ExpressRoute' + policyDefinitionReferenceId: 'ExpressRouteDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'ExpressRouteLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Firewall' + policyDefinitionReferenceId: 'FirewallDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'FirewallLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-FrontDoor' + policyDefinitionReferenceId: 'FrontDoorDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'FrontDoorLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Function' + policyDefinitionReferenceId: 'FunctionAppDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'FunctionAppLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-HDInsight' + policyDefinitionReferenceId: 'HDInsightDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'HDInsightLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-iotHub' + policyDefinitionReferenceId: 'IotHubDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'IotHubLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-KeyVault' + policyDefinitionReferenceId: 'KeyVaultDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'KeyVaultLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LoadBalancer' + policyDefinitionReferenceId: 'LoadBalancerDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'LoadBalancerLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LogicAppsISE' + policyDefinitionReferenceId: 'LogicAppsISEDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'LogicAppsISELogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LogicAppsWF' + policyDefinitionReferenceId: 'LogicAppsWFDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'LogicAppsWFLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MariaDB' + policyDefinitionReferenceId: 'MariaDBDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'MariaDBLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MlWorkspace' + policyDefinitionReferenceId: 'MlWorkspaceDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'MlWorkspaceLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MySQL' + policyDefinitionReferenceId: 'MySQLDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'MySQLLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-NetworkSecurityGroups' + policyDefinitionReferenceId: 'NetworkSecurityGroupsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'NetworkSecurityGroupsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-NIC' + policyDefinitionReferenceId: 'NetworkNICDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'NetworkNICLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PostgreSQL' + policyDefinitionReferenceId: 'PostgreSQLDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'PostgreSQLLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PowerBIEmbedded' + policyDefinitionReferenceId: 'PowerBIEmbeddedDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'PowerBIEmbeddedLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PublicIP' + policyDefinitionReferenceId: 'NetworkPublicIPNicDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'NetworkPublicIPNicLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-RecoveryVault' + policyDefinitionReferenceId: 'RecoveryVaultDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'RecoveryVaultLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-RedisCache' + policyDefinitionReferenceId: 'RedisCacheDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'RedisCacheLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Relay' + policyDefinitionReferenceId: 'RelayDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'RelayLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SearchServices' + policyDefinitionReferenceId: 'SearchServicesDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'SearchServicesLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ServiceBus' + policyDefinitionReferenceId: 'ServiceBusDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'ServiceBusLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SignalR' + policyDefinitionReferenceId: 'SignalRDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'SignalRLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLDBs' + policyDefinitionReferenceId: 'SQLDBsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'SQLDBsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLElasticPools' + policyDefinitionReferenceId: 'SQLElasticPoolsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'SQLElasticPoolsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLMI' + policyDefinitionReferenceId: 'SQLMDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'SQLMLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-StreamAnalytics' + policyDefinitionReferenceId: 'StreamAnalyticsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'StreamAnalyticsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-TimeSeriesInsights' + policyDefinitionReferenceId: 'TimeSeriesInsightsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'TimeSeriesInsightsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-TrafficManager' + policyDefinitionReferenceId: 'TrafficManagerDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'TrafficManagerLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VirtualNetwork' + policyDefinitionReferenceId: 'VirtualNetworkDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'VirtualNetworkLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VM' + policyDefinitionReferenceId: 'VirtualMachinesDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'VirtualMachinesLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VMSS' + policyDefinitionReferenceId: 'VMSSDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'VMSSLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VNetGW' + policyDefinitionReferenceId: 'VNetGWDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'VNetGWLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-WebServerFarm' + policyDefinitionReferenceId: 'AppServiceDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'AppServiceLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Website' + policyDefinitionReferenceId: 'AppServiceWebappDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'AppServiceWebappLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + ] + } + type: null + name: 'Deploy-Diag-LogAnalytics' + } + { + properties: { + Description: 'This policy denies creation of Azure PAAS services with exposed public endpoints. This policy set includes the policy for the following services KeyVault, Storage accounts, AKS, Cosmos, SQL Servers, MariaDB, MySQL and Postgress. ' + DisplayName: 'Public network access should be disabled for PAAS services' + Parameters: { + CosmosPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access should be disabled for CosmosDB' + description: 'This policy denies that Cosmos database accounts are created with out public network access is disabled.' + } + } + MariaDBPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access should be disabled for MariaDB' + description: 'This policy denies the creation of Maria DB accounts with exposed public endpoints' + } + } + MySQLPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access should be disabled for MySQL' + description: 'This policy denies creation of MySql DB accounts with exposed public endpoints' + } + } + PostgreSQLPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access should be disabled for PostgreSql' + description: 'This policy denies creation of Postgre SQL DB accounts with exposed public endpoints' + } + } + KeyVaultPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access should be disabled for KeyVault' + description: 'This policy denies creation of Key Vaults with IP Firewall exposed to all public endpoints' + } + } + SqlServerPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access on Azure SQL Database should be disabled' + description: 'This policy denies creation of Sql servers with exposed public endpoints' + } + } + StoragePublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access onStorage accounts should be disabled' + description: 'This policy denies creation of storage accounts with IP Firewall exposed to all public endpoints' + } + } + AKSPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access on AKS API should be disabled' + description: 'This policy denies the creation of Azure Kubernetes Service non-private clusters' + } + } + } + PolicyDefinitionGroups: null + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyDefinitions: [ + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-CosmosDB' + policyDefinitionReferenceId: 'CosmosDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'CosmosPublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-MariaDB' + policyDefinitionReferenceId: 'MariaDBDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'MariaDBPublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-MySQL' + policyDefinitionReferenceId: 'MySQLDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'MySQLPublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-PostgreSql' + policyDefinitionReferenceId: 'PostgreSQLDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'PostgreSQLPublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-KeyVault' + policyDefinitionReferenceId: 'KeyVaultDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'KeyVaultPublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Sql' + policyDefinitionReferenceId: 'SqlServerDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'SqlServerPublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Storage' + policyDefinitionReferenceId: 'StorageDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'StoragePublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Aks' + policyDefinitionReferenceId: 'AKSDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'AKSPublicIpDenyEffect\')]' + } + } + } + ] + } + type: null + name: 'Deny-PublicEndpoints' + } + { + properties: { + Description: 'Deploy auditing, Alert, TDE and SQL vulnerability to SQL Databases when it not exist in the deployment' + DisplayName: 'Deploy SQL Database built-in SQL security configuration' + Parameters: { + vulnerabilityAssessmentsEmail: { + metadata: { + description: 'The email address to send alerts' + displayName: 'The email address to send alerts' + } + type: 'String' + } + vulnerabilityAssessmentsStorageID: { + metadata: { + description: 'The storage account ID to store assessments' + displayName: 'The storage account ID to store assessments' + } + type: 'String' + } + SqlDbTdeDeploySqlSecurityEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy SQL Database Transparent Data Encryption ' + description: 'Deploy the Transparent Data Encryption when it is not enabled in the deployment' + } + } + SqlDbSecurityAlertPoliciesDeploySqlSecurityEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy SQL Database security Alert Policies configuration with email admin accounts' + description: 'Deploy the security Alert Policies configuration with email admin accounts when it not exist in current configuration' + } + } + SqlDbAuditingSettingsDeploySqlSecurityEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy SQL database auditing settings' + description: 'Deploy auditing settings to SQL Database when it not exist in the deployment' + } + } + SqlDbVulnerabilityAssessmentsDeploySqlSecurityEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy SQL Database vulnerability Assessments' + description: 'Deploy SQL Database vulnerability Assessments when it not exist in the deployment. To the specific storage account in the parameters' + } + } + } + PolicyDefinitionGroups: null + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyDefinitions: [ + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-Tde' + policyDefinitionReferenceId: 'SqlDbTdeDeploySqlSecurity' + parameters: { + effect: { + value: '[parameters(\'SqlDbTdeDeploySqlSecurityEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-SecurityAlertPolicies' + policyDefinitionReferenceId: 'SqlDbSecurityAlertPoliciesDeploySqlSecurity' + parameters: { + effect: { + value: '[parameters(\'SqlDbSecurityAlertPoliciesDeploySqlSecurityEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-AuditingSettings' + policyDefinitionReferenceId: 'SqlDbAuditingSettingsDeploySqlSecurity' + parameters: { + effect: { + value: '[parameters(\'SqlDbAuditingSettingsDeploySqlSecurityEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-vulnerabilityAssessments' + policyDefinitionReferenceId: 'SqlDbVulnerabilityAssessmentsDeploySqlSecurity' + parameters: { + effect: { + value: '[parameters(\'SqlDbVulnerabilityAssessmentsDeploySqlSecurityEffect\')]' + } + vulnerabilityAssessmentsEmail: { + value: '[parameters(\'vulnerabilityAssessmentsEmail\')]' + } + vulnerabilityAssessmentsStorageID: { + value: '[parameters(\'vulnerabilityAssessmentsStorageID\')]' + } + } + } + ] + } + type: null + name: 'Deploy-Sql-Security' + } + ] +} + +resource policies_policyDefinitions_0_name 'Microsoft.Authorization/policyDefinitions@2019-09-01' = { + name: policies.policyDefinitions[0].name + properties: { + displayName: policies.policyDefinitions[0].properties.displayName + description: policies.policyDefinitions[0].properties.description + mode: 'All' + policyType: 'Custom' + parameters: policies.policyDefinitions[0].properties.parameters + policyRule: policies.policyDefinitions[0].properties.policyRule + metadata: policies.policyDefinitions[0].properties.metadata + } +} + +resource initiatives_policySetDefinitions_0_name 'Microsoft.Authorization/policySetDefinitions@2019-09-01' = { + name: initiatives.policySetDefinitions[0].name + properties: { + displayName: initiatives.policySetDefinitions[0].properties.displayName + description: initiatives.policySetDefinitions[0].properties.description + parameters: initiatives.policySetDefinitions[0].properties.parameters + policyDefinitions: initiatives.policySetDefinitions[0].properties.policyDefinitions + metadata: initiatives.policySetDefinitions[0].properties.metadata + } +} diff --git a/src/Bicep.Core.Samples/Files/LargeTemplate_LF/main.json b/src/Bicep.Core.Samples/Files/LargeTemplate_LF/main.json new file mode 100644 index 00000000000..5a3a95bf154 --- /dev/null +++ b/src/Bicep.Core.Samples/Files/LargeTemplate_LF/main.json @@ -0,0 +1,17356 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "topLevelManagementGroupPrefix": { + "type": "string", + "maxLength": 5 + } + }, + "functions": [], + "variables": { + "scope": "[format('/providers/Microsoft.Management/managementGroups/{0}', parameters('topLevelManagementGroupPrefix'))]", + "policies": { + "policyDefinitions": [ + { + "properties": { + "Description": "Deploys the diagnostic settings for Container Instances to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.", + "DisplayName": "Deploy Diagnostic Settings for Container Instances to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.ContainerInstance/containerGroups" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.ContainerInstance/containerGroups/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-ACI" + }, + { + "Properties": { + "Description": "Depoloys a default budget on subscriptions.", + "DisplayName": "Deploy a default budget on subscriptions", + "Mode": "All", + "Parameters": { + "amount": { + "type": "string", + "defaultValue": "1000", + "metadata": { + "description": "The total amount of cost or usage to track with the budget" + } + }, + "timeGrain": { + "type": "string", + "defaultValue": "Monthly", + "allowedValues": [ + "Monthly", + "Quarterly", + "Annually", + "BillingMonth", + "BillingQuarter", + "BillingAnnual" + ], + "metadata": { + "description": "The time covered by a budget. Tracking of the amount will be reset based on the time grain." + } + }, + "firstThreshold": { + "type": "string", + "defaultValue": "90", + "metadata": { + "description": "Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0 and 1000." + } + }, + "secondThreshold": { + "type": "string", + "defaultValue": "100", + "metadata": { + "description": "Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0 and 1000." + } + }, + "contactRoles": { + "type": "array", + "defaultValue": [ + "Owner", + "Contributor" + ], + "metadata": { + "description": "The list of contact RBAC roles, in an array, to send the budget notification to when the threshold is exceeded." + } + }, + "contactEmails": { + "type": "array", + "defaultValue": [], + "metadata": { + "description": "The list of email addresses, in an array, to send the budget notification to when the threshold is exceeded." + } + }, + "contactGroups": { + "type": "array", + "defaultValue": [], + "metadata": { + "description": "The list of action groups, in an array, to send the budget notification to when the threshold is exceeded. It accepts array of strings." + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Budget" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Resources/subscriptions" + } + ] + }, + "then": { + "effect": "DeployIfNotExists", + "details": { + "type": "Microsoft.Consumption/budgets", + "deploymentScope": "Subscription", + "existenceScope": "Subscription", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Consumption/budgets/amount", + "equals": "[[parameters('amount')]" + }, + { + "field": "Microsoft.Consumption/budgets/timeGrain", + "equals": "[[parameters('timeGrain')]" + }, + { + "field": "Microsoft.Consumption/budgets/category", + "equals": "Cost" + } + ] + }, + "roleDefinitionIds": [ + "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c" + ], + "deployment": { + "location": "northeurope", + "properties": { + "mode": "incremental", + "parameters": { + "amount": { + "value": "[[parameters('amount')]" + }, + "timeGrain": { + "value": "[[parameters('timeGrain')]" + }, + "firstThreshold": { + "value": "[[parameters('firstThreshold')]" + }, + "secondThreshold": { + "value": "[[parameters('secondThreshold')]" + }, + "contactEmails": { + "value": "[[parameters('contactEmails')]" + }, + "contactRoles": { + "value": "[[parameters('contactRoles')]" + }, + "contactGroups": { + "value": "[[parameters('contactGroups')]" + } + }, + "template": { + "$schema": "http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json", + "contentVersion": "1.0.0.0", + "parameters": { + "amount": { + "type": "string" + }, + "timeGrain": { + "type": "string" + }, + "firstThreshold": { + "type": "string" + }, + "secondThreshold": { + "type": "string" + }, + "contactEmails": { + "type": "array" + }, + "contactRoles": { + "type": "array" + }, + "contactGroups": { + "type": "array" + }, + "startDate": { + "type": "string", + "defaultValue": "[[concat(utcNow('MM'), '/01/', utcNow('yyyy'))]" + } + }, + "resources": [ + { + "type": "Microsoft.Consumption/budgets", + "apiVersion": "2019-10-01", + "name": "default-sandbox-budget", + "properties": { + "timePeriod": { + "startDate": "[[parameters('startDate')]" + }, + "timeGrain": "[[parameters('timeGrain')]", + "amount": "[[parameters('amount')]", + "category": "Cost", + "notifications": { + "NotificationForExceededBudget1": { + "enabled": true, + "operator": "GreaterThan", + "threshold": "[[parameters('firstThreshold')]", + "contactEmails": "[[parameters('contactEmails')]", + "contactRoles": "[[parameters('contactRoles')]", + "contactGroups": "[[parameters('contactGroups')]" + }, + "NotificationForExceededBudget2": { + "enabled": true, + "operator": "GreaterThan", + "threshold": "[[parameters('secondThreshold')]", + "contactEmails": "[[parameters('contactEmails')]", + "contactRoles": "[[parameters('contactRoles')]", + "contactGroups": "[[parameters('contactGroups')]" + } + } + } + } + ] + } + } + } + } + } + } + }, + "name": "Deploy-Budget" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Container Registry to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.", + "DisplayName": "Deploy Diagnostic Settings for Container Registry to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.ContainerRegistry/registries" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.ContainerRegistry/registries/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "ContainerRegistryLoginEvents", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "ContainerRegistryRepositoryEvents", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-ACR" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Activity Log to stream to a Log Analytics workspace when any Activity Log which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with category enabled.", + "DisplayName": "Deploy Diagnostic Settings for Activity Log to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Primary Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Resources/subscriptions" + } + ] + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "deploymentScope": "Subscription", + "existenceScope": "Subscription", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "deployment": { + "location": "northeurope", + "properties": { + "mode": "incremental", + "template": { + "$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "logAnalytics": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "name": "subscriptionToLa", + "type": "Microsoft.Insights/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "location": "Global", + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "logs": [ + { + "category": "Administrative", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "Security", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "ServiceHealth", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "Alert", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "Recommendation", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "Policy", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "Autoscale", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "ResourceHealth", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ] + } + } + } + }, + "name": "Deploy-Diagnostics-ActivityLog" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Kubernetes Service to stream to a Log Analytics workspace when any Kubernetes Service which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.", + "DisplayName": "Deploy Diagnostic Settings for Kubernetes Service to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.ContainerService/managedClusters" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.ContainerService/managedClusters/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "kube-audit", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "kube-apiserver", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "kube-controller-manager", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "kube-scheduler", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "cluster-autoscaler", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "guard", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "kube-audit-admin", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-AKS" + }, + { + "Properties": { + "Description": "This policy deploys virtual network and peer to the hub", + "DisplayName": "Deploys virtual network peering to hub", + "Mode": "All", + "Parameters": { + "vNetName": { + "type": "String", + "metadata": { + "displayName": "vNetName", + "description": "Name of the landing zone vNet" + } + }, + "vNetRgName": { + "type": "String", + "metadata": { + "displayName": "vNetRgName", + "description": "Name of the landing zone vNet RG" + } + }, + "vNetLocation": { + "type": "String", + "metadata": { + "displayName": "vNetLocation", + "description": "Location for the vNet" + } + }, + "vNetCidrRange": { + "type": "String", + "metadata": { + "displayName": "vNetCidrRange", + "description": "CIDR Range for the vNet" + } + }, + "hubResourceId": { + "type": "String", + "metadata": { + "displayName": "hubResourceId", + "description": "Resource ID for the HUB vNet" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Network" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Resources/subscriptions" + } + ] + }, + "then": { + "effect": "deployIfNotExists", + "details": { + "type": "Microsoft.Network/virtualNetworks", + "name": "[[parameters('vNetName')]", + "deploymentScope": "Subscription", + "existenceScope": "ResourceGroup", + "ResourceGroupName": "[[parameters('vNetRgName')]", + "roleDefinitionIds": [ + "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c" + ], + "existenceCondition": { + "allOf": [ + { + "field": "name", + "like": "[[parameters('vNetName')]" + }, + { + "field": "location", + "equals": "[[parameters('vNetLocation')]" + } + ] + }, + "deployment": { + "location": "northeurope", + "properties": { + "mode": "incremental", + "parameters": { + "vNetRgName": { + "value": "[[parameters('vNetRgName')]" + }, + "vNetName": { + "value": "[[parameters('vNetName')]" + }, + "vNetLocation": { + "value": "[[parameters('vNetLocation')]" + }, + "vNetCidrRange": { + "value": "[[parameters('vNetCidrRange')]" + }, + "hubResourceId": { + "value": "[[parameters('hubResourceId')]" + } + }, + "template": { + "$schema": "http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json", + "contentVersion": "1.0.0.0", + "parameters": { + "vNetRgName": { + "type": "string" + }, + "vNetName": { + "type": "string" + }, + "vNetLocation": { + "type": "string" + }, + "vNetCidrRange": { + "type": "string" + }, + "vNetPeerUseRemoteGateway": { + "type": "bool", + "defaultValue": false + }, + "hubResourceId": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Resources/deployments", + "apiVersion": "2020-06-01", + "name": "[[concat('es-lz-vnet-',substring(uniqueString(subscription().id),0,6),'-rg')]", + "location": "[[parameters('vNetLocation')]", + "dependsOn": [], + "properties": { + "mode": "Incremental", + "template": { + "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": {}, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Resources/resourceGroups", + "apiVersion": "2020-06-01", + "name": "[[parameters('vNetRgName')]", + "location": "[[parameters('vNetLocation')]", + "properties": {} + }, + { + "type": "Microsoft.Resources/resourceGroups", + "apiVersion": "2020-06-01", + "name": "NetworkWatcherRG", + "location": "[[parameters('vNetLocation')]", + "properties": {} + } + ], + "outputs": {} + } + } + }, + { + "type": "Microsoft.Resources/deployments", + "apiVersion": "2020-06-01", + "name": "[[concat('es-lz-vnet-',substring(uniqueString(subscription().id),0,6))]", + "dependsOn": [ + "[[concat('es-lz-vnet-',substring(uniqueString(subscription().id),0,6),'-rg')]" + ], + "properties": { + "mode": "Incremental", + "template": { + "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": {}, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Network/virtualNetworks", + "apiVersion": "2020-06-01", + "name": "[[parameters('vNetName')]", + "location": "[[parameters('vNetLocation')]", + "dependsOn": [], + "properties": { + "addressSpace": { + "addressPrefixes": [ + "[[parameters('vNetCidrRange')]" + ] + } + } + }, + { + "type": "Microsoft.Network/virtualNetworks/virtualNetworkPeerings", + "apiVersion": "2020-05-01", + "name": "[[concat(parameters('vNetName'), '/peerToHub')]", + "dependsOn": [ + "[[parameters('vNetName')]" + ], + "properties": { + "remoteVirtualNetwork": { + "id": "[[parameters('hubResourceId')]" + }, + "allowVirtualNetworkAccess": true, + "allowForwardedTraffic": true, + "allowGatewayTransit": false, + "useRemoteGateways": "[[parameters('vNetPeerUseRemoteGateway')]" + } + }, + { + "type": "Microsoft.Resources/deployments", + "apiVersion": "2020-06-01", + "name": "[[concat('es-lz-hub-',substring(uniqueString(subscription().id),0,6),'-peering')]", + "subscriptionId": "[[split(parameters('hubResourceId'),'/')[2]]", + "resourceGroup": "[[split(parameters('hubResourceId'),'/')[4]]", + "dependsOn": [ + "[[parameters('vNetName')]" + ], + "properties": { + "mode": "Incremental", + "expressionEvaluationOptions": { + "scope": "inner" + }, + "template": { + "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "remoteVirtualNetwork": { + "Type": "string", + "defaultValue": false + }, + "hubName": { + "Type": "string", + "defaultValue": false + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Network/virtualNetworks/virtualNetworkPeerings", + "name": "[[[concat(parameters('hubName'),'/',last(split(parameters('remoteVirtualNetwork'),'/')))]", + "apiVersion": "2020-05-01", + "properties": { + "allowVirtualNetworkAccess": true, + "allowForwardedTraffic": true, + "allowGatewayTransit": true, + "useRemoteGateways": false, + "remoteVirtualNetwork": { + "id": "[[[parameters('remoteVirtualNetwork')]" + } + } + } + ], + "outputs": {} + }, + "parameters": { + "remoteVirtualNetwork": { + "value": "[[concat(subscription().id,'/resourceGroups/',parameters('vNetRgName'), '/providers/','Microsoft.Network/virtualNetworks/', parameters('vNetName'))]" + }, + "hubName": { + "value": "[[split(parameters('hubResourceId'),'/')[8]]" + } + } + } + } + ], + "outputs": {} + } + }, + "resourceGroup": "[[parameters('vNetRgName')]" + } + ], + "outputs": {} + } + } + } + } + } + } + }, + "name": "Deploy-VNET-HubSpoke" + }, + { + "properties": { + "Description": "This policy denies the creation of Azure Kubernetes Service non-private clusters", + "DisplayName": "Public network access on AKS API should be disabled", + "Mode": "Indexed", + "Parameters": { + "effect": { + "type": "String", + "allowedValues": [ + "Audit", + "Deny", + "Disabled" + ], + "defaultValue": "Deny", + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Kubernetes" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.ContainerService/managedClusters" + }, + { + "field": "Microsoft.ContainerService/managedClusters/apiServerAccessProfile.enablePrivateCluster", + "notequals": "true" + } + ] + }, + "then": { + "effect": "[[parameters('effect')]" + } + } + }, + "name": "Deny-PublicEndpoint-Aks" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Analysis Services to stream to a Log Analytics workspace when any Analysis Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Analysis Services to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.AnalysisServices/servers" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.AnalysisServices/servers/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "Engine", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "Service", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-AnalysisService" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for API Management to stream to a Log Analytics workspace when any API Management which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for API Management to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.ApiManagement/service" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.ApiManagement/service/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "Gateway Requests", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + }, + { + "category": "Capacity", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + }, + { + "category": "EventHub Events", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + }, + { + "category": "Network Status", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "GatewayLogs", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-APIMgmt" + }, + { + "properties": { + "Description": "This policy enables you to restrict that Application Gateways is always deployed with WAF enabled", + "DisplayName": "Application Gateway should be deployed with WAF enabled", + "Mode": "Indexed", + "Parameters": { + "effect": { + "type": "String", + "allowedValues": [ + "Audit", + "Deny", + "Disabled" + ], + "defaultValue": "Deny", + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Network" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Network/applicationGateways" + }, + { + "field": "Microsoft.Network/applicationGateways/sku.name", + "notequals": "WAF_v2" + } + ] + }, + "then": { + "effect": "[[parameters('effect')]" + } + } + }, + "name": "Deny-AppGW-Without-WAF" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Application Gateway to stream to a Log Analytics workspace when any Application Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Application Gateway to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Network/applicationGateways" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Network/applicationGateways/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "ApplicationGatewayAccessLog", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "ApplicationGatewayPerformanceLog", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "ApplicationGatewayFirewallLog", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-ApplicationGateway" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for App Service Plan to stream to a Log Analytics workspace when any App Service Plan which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for App Service Plan to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Web/serverfarms" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Web/serverfarms/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-WebServerFarm" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Web App to stream to a Log Analytics workspace when any Web App which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for App Service to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Web/sites" + }, + { + "value": "[[field('kind')]", + "notContains": "functionapp" + } + ] + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Web/sites/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "AppServiceAntivirusScanAuditLogs", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "AppServiceHTTPLogs", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "AppServiceConsoleLogs", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "AppServiceHTTPLogs", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "AppServiceAppLogs", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "AppServiceFileAuditLogs", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "AppServiceAuditLogs", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "AppServiceIPSecAuditLogs", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "AppServicePlatformLogs", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-Website" + }, + { + "properties": { + "Description": "Deploys the Azure Defender settings in Azure Security Center for the specific services.", + "DisplayName": "Deploy Azure Defender settings in Azure Security Center.", + "Mode": "Indexed", + "Parameters": { + "pricingTierVMs": { + "type": "String", + "metadata": { + "displayName": "pricingTierVMs", + "description": null + }, + "allowedValues": [ + "Standard", + "Free" + ], + "defaultValue": "Standard" + }, + "pricingTierSqlServers": { + "type": "String", + "metadata": { + "displayName": "pricingTierSqlServers", + "description": null + }, + "allowedValues": [ + "Standard", + "Free" + ], + "defaultValue": "Standard" + }, + "pricingTierAppServices": { + "type": "String", + "metadata": { + "displayName": "pricingTierAppServices", + "description": null + }, + "allowedValues": [ + "Standard", + "Free" + ], + "defaultValue": "Standard" + }, + "pricingTierStorageAccounts": { + "type": "String", + "metadata": { + "displayName": "pricingTierStorageAccounts", + "description": null + }, + "allowedValues": [ + "Standard", + "Free" + ], + "defaultValue": "Standard" + }, + "pricingTierContainerRegistry": { + "type": "String", + "metadata": { + "displayName": "pricingTierContainerRegistry", + "description": null + }, + "allowedValues": [ + "Standard", + "Free" + ], + "defaultValue": "Standard" + }, + "pricingTierKeyVaults": { + "type": "String", + "metadata": { + "displayName": "pricingTierKeyVaults", + "description": null + }, + "allowedValues": [ + "Standard", + "Free" + ], + "defaultValue": "Standard" + }, + "pricingTierKubernetesService": { + "type": "String", + "metadata": { + "displayName": "pricingTierKubernetesService", + "description": null + }, + "allowedValues": [ + "Standard", + "Free" + ], + "defaultValue": "Standard" + }, + "pricingTierDns": { + "type": "String", + "metadata": { + "displayName": "pricingTierDns", + "description": null + }, + "allowedValues": [ + "Standard", + "Free" + ], + "defaultValue": "Standard" + }, + "pricingTierArm": { + "type": "String", + "metadata": { + "displayName": "pricingTierArm", + "description": null + }, + "allowedValues": [ + "Standard", + "Free" + ], + "defaultValue": "Standard" + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Security Center" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Resources/subscriptions" + } + ] + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Security/pricings", + "deploymentScope": "subscription", + "existenceScope": "subscription", + "roleDefinitionIds": [ + "/providers/Microsoft.Authorization/roleDefinitions/fb1c8493-542b-48eb-b624-b4c8fea62acd" + ], + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Security/pricings/pricingTier", + "equals": "Standard" + }, + { + "field": "type", + "equals": "Microsoft.Security/pricings" + } + ] + }, + "deployment": { + "location": "northeurope", + "properties": { + "mode": "incremental", + "parameters": { + "pricingTierVMs": { + "value": "[[parameters('pricingTierVMs')]" + }, + "pricingTierSqlServers": { + "value": "[[parameters('pricingTierSqlServers')]" + }, + "pricingTierAppServices": { + "value": "[[parameters('pricingTierAppServices')]" + }, + "pricingTierStorageAccounts": { + "value": "[[parameters('pricingTierStorageAccounts')]" + }, + "pricingTierContainerRegistry": { + "value": "[[parameters('pricingTierContainerRegistry')]" + }, + "pricingTierKeyVaults": { + "value": "[[parameters('pricingTierKeyVaults')]" + }, + "pricingTierKubernetesService": { + "value": "[[parameters('pricingTierKubernetesService')]" + }, + "pricingTierDns": { + "value": "[[parameters('pricingTierDns')]" + }, + "pricingTierArm": { + "value": "[[parameters('pricingTierArm')]" + } + }, + "template": { + "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "pricingTierVMs": { + "type": "string", + "metadata": { + "description": "pricingTierVMs" + } + }, + "pricingTierSqlServers": { + "type": "string", + "metadata": { + "description": "pricingTierSqlServers" + } + }, + "pricingTierAppServices": { + "type": "string", + "metadata": { + "description": "pricingTierAppServices" + } + }, + "pricingTierStorageAccounts": { + "type": "string", + "metadata": { + "description": "pricingTierStorageAccounts" + } + }, + "pricingTierContainerRegistry": { + "type": "string", + "metadata": { + "description": "ContainerRegistry" + } + }, + "pricingTierKeyVaults": { + "type": "string", + "metadata": { + "description": "KeyVaults" + } + }, + "pricingTierKubernetesService": { + "type": "string", + "metadata": { + "description": "KubernetesService" + } + }, + "pricingTierDns": { + "type": "string", + "metadata": { + "description": "KubernetesService" + } + }, + "pricingTierArm": { + "type": "string", + "metadata": { + "description": "KubernetesService" + } + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Security/pricings", + "apiVersion": "2018-06-01", + "name": "VirtualMachines", + "properties": { + "pricingTier": "[[parameters('pricingTierVMs')]" + } + }, + { + "type": "Microsoft.Security/pricings", + "apiVersion": "2018-06-01", + "name": "StorageAccounts", + "dependsOn": [ + "[[concat('Microsoft.Security/pricings/VirtualMachines')]" + ], + "properties": { + "pricingTier": "[[parameters('pricingTierStorageAccounts')]" + } + }, + { + "type": "Microsoft.Security/pricings", + "apiVersion": "2018-06-01", + "name": "AppServices", + "dependsOn": [ + "[[concat('Microsoft.Security/pricings/StorageAccounts')]" + ], + "properties": { + "pricingTier": "[[parameters('pricingTierAppServices')]" + } + }, + { + "type": "Microsoft.Security/pricings", + "apiVersion": "2018-06-01", + "name": "SqlServers", + "dependsOn": [ + "[[concat('Microsoft.Security/pricings/AppServices')]" + ], + "properties": { + "pricingTier": "[[parameters('pricingTierSqlServers')]" + } + }, + { + "type": "Microsoft.Security/pricings", + "apiVersion": "2018-06-01", + "name": "KeyVaults", + "dependsOn": [ + "[[concat('Microsoft.Security/pricings/SqlServers')]" + ], + "properties": { + "pricingTier": "[[parameters('pricingTierKeyVaults')]" + } + }, + { + "type": "Microsoft.Security/pricings", + "apiVersion": "2018-06-01", + "name": "KubernetesService", + "dependsOn": [ + "[[concat('Microsoft.Security/pricings/KeyVaults')]" + ], + "properties": { + "pricingTier": "[[parameters('pricingTierKubernetesService')]" + } + }, + { + "type": "Microsoft.Security/pricings", + "apiVersion": "2018-06-01", + "name": "ContainerRegistry", + "dependsOn": [ + "[[concat('Microsoft.Security/pricings/KubernetesService')]" + ], + "properties": { + "pricingTier": "[[parameters('pricingTierContainerRegistry')]" + } + }, + { + "type": "Microsoft.Security/pricings", + "apiVersion": "2018-06-01", + "name": "Dns", + "dependsOn": [ + "[[concat('Microsoft.Security/pricings/ContainerRegistry')]" + ], + "properties": { + "pricingTier": "[[parameters('pricingTierDns')]" + } + }, + { + "type": "Microsoft.Security/pricings", + "apiVersion": "2018-06-01", + "name": "Arm", + "dependsOn": [ + "[[concat('Microsoft.Security/pricings/Dns')]" + ], + "properties": { + "pricingTier": "[[parameters('pricingTierArm')]" + } + } + ], + "outputs": {} + } + } + } + } + } + } + }, + "name": "Deploy-ASC-Standard" + }, + { + "properties": { + "Description": "This policy denies the creation of child resources on the Automation Account", + "DisplayName": "No child resources in Automation Account", + "Mode": "Indexed", + "Parameters": { + "effect": { + "type": "String", + "allowedValues": [ + "Audit", + "Deny", + "Disabled" + ], + "defaultValue": "Deny", + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Automation" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "in": [ + "Microsoft.Automation/automationAccounts/runbooks", + "Microsoft.Automation/automationAccounts/variables", + "Microsoft.Automation/automationAccounts/modules", + "Microsoft.Automation/automationAccounts/credentials", + "Microsoft.Automation/automationAccounts/connections", + "Microsoft.Automation/automationAccount/certificates" + ] + } + ] + }, + "then": { + "effect": "[[parameters('effect')]" + } + } + }, + "name": "Deny-AA-child-resources" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Automation to stream to a Log Analytics workspace when any Automation which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Automation to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Automation/automationAccounts" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Automation/automationAccounts/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "timeGrain": null, + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "enabled": false, + "days": 0 + } + } + ], + "logs": [ + { + "category": "JobLogs", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "JobStreams", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "DscNodeStatus", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-AA" + }, + { + "properties": { + "displayName": "RDP access from the Internet should be blocked", + "description": "This policy denies any network security rule that allows RDP access from Internet", + "mode": "All", + "metadata": { + "version": "1.0.0", + "category": "Network" + }, + "parameters": { + "effect": { + "type": "String", + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + }, + "allowedValues": [ + "Audit", + "Deny", + "Disabled" + ], + "defaultValue": "Deny" + } + }, + "policyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Network/networkSecurityGroups/securityRules" + }, + { + "allOf": [ + { + "field": "Microsoft.Network/networkSecurityGroups/securityRules/access", + "equals": "Allow" + }, + { + "field": "Microsoft.Network/networkSecurityGroups/securityRules/direction", + "equals": "Inbound" + }, + { + "anyOf": [ + { + "field": "Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange", + "equals": "*" + }, + { + "field": "Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange", + "equals": "3389" + }, + { + "value": "[[if(and(not(empty(field('Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange'))), contains(field('Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange'),'-')), and(lessOrEquals(int(first(split(field('Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange'), '-'))),3389),greaterOrEquals(int(last(split(field('Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange'), '-'))),3389)), 'false')]", + "equals": "true" + }, + { + "count": { + "field": "Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]", + "where": { + "value": "[[if(and(not(empty(first(field('Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]')))), contains(first(field('Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]')),'-')), and(lessOrEquals(int(first(split(first(field('Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]')), '-'))),3389),greaterOrEquals(int(last(split(first(field('Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]')), '-'))),3389)) , 'false')]", + "equals": "true" + } + }, + "greater": 0 + }, + { + "not": { + "field": "Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]", + "notEquals": "*" + } + }, + { + "not": { + "field": "Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]", + "notEquals": "3389" + } + } + ] + }, + { + "anyOf": [ + { + "field": "Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefix", + "equals": "*" + }, + { + "field": "Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefix", + "equals": "Internet" + }, + { + "not": { + "field": "Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefixes[*]", + "notEquals": "*" + } + }, + { + "not": { + "field": "Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefixes[*]", + "notEquals": "Internet" + } + } + ] + } + ] + } + ] + }, + "then": { + "effect": "[[parameters('effect')]" + } + } + }, + "name": "Deny-RDP-From-Internet" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Batch to stream to a Log Analytics workspace when any Batch which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Batch to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Batch/batchAccounts" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Batch/batchAccounts/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "ServiceLog", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-Batch" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for CDN Endpoint to stream to a Log Analytics workspace when any CDN Endpoint which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for CDN Endpoint to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Cdn/profiles/endpoints" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Cdn/profiles/endpoints/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [], + "logs": [ + { + "category": "CoreAnalytics", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('fullName')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-CDNEndpoints" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Cognitive Services to stream to a Log Analytics workspace when any Cognitive Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Cognitive Services to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.CognitiveServices/accounts" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.CognitiveServices/accounts/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "Audit", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "RequestResponse", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "Trace", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-CognitiveServices" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Cosmos DB to stream to a Log Analytics workspace when any Cosmos DB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Cosmos DB to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.DocumentDB/databaseAccounts" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.DocumentDB/databaseAccounts/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "Requests", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "DataPlaneRequests", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "MongoRequests", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "QueryRuntimeStatistics", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "PartitionKeyStatistics", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "PartitionKeyRUConsumption", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "ControlPlaneRequests", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "CassandraRequests", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "GremlinRequests", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-CosmosDB" + }, + { + "properties": { + "Description": "This policy denies that Cosmos database accounts are created with out public network access is disabled.", + "DisplayName": "Public network access should be disabled for CosmosDB", + "Mode": "Indexed", + "Parameters": { + "effect": { + "type": "String", + "allowedValues": [ + "Audit", + "Deny", + "Disabled" + ], + "defaultValue": "Deny", + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "SQL" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.DocumentDB/databaseAccounts" + }, + { + "field": "Microsoft.DocumentDB/databaseAccounts/publicNetworkAccess", + "notequals": "Disabled" + } + ] + }, + "then": { + "effect": "[[parameters('effect')]" + } + } + }, + "name": "Deny-PublicEndpoint-CosmosDB" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Databricks to stream to a Log Analytics workspace when any Databricks which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Databricks to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Databricks/workspaces" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Databricks/workspaces/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "logs": [ + { + "category": "dbfs", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "clusters", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "accounts", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "jobs", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "notebook", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "ssh", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "workspace", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "secrets", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "sqlPermissions", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "instancePools", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-Databricks" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Data Factory to stream to a Log Analytics workspace when any Data Factory which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Data Factory to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.DataFactory/factories" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.DataFactory/factories/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "ActivityRuns", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "PipelineRuns", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "TriggerRuns", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "SSISPackageEventMessages", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "SSISPackageExecutableStatistics", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "SSISPackageEventMessageContext", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "SSISPackageExecutionComponentPhases", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "SSISPackageExecutionDataStatistics", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "SSISIntegrationRuntimeLogs", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-DataFactory" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Data Lake Analytics to stream to a Log Analytics workspace when any Data Lake Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Data Lake Analytics to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.DataLakeAnalytics/accounts" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.DataLakeAnalytics/accounts/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "Audit", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "Requests", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-DLAnalytics" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Azure Data Lake Store to stream to a Log Analytics workspace when anyAzure Data Lake Store which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Azure Data Lake Store to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.DataLakeStore/accounts" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.DataLakeStore/accounts/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "Audit", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "Requests", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-DataLakeStore" + }, + { + "properties": { + "Description": "Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Blob Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ", + "DisplayName": "Deploy DNS Zone Group for Storage-Blob Private Endpoint", + "Mode": "Indexed", + "Parameters": { + "privateDnsZoneId": { + "type": "String", + "metadata": { + "displayName": "privateDnsZoneId", + "strongType": "Microsoft.Network/privateDnsZones" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Network" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Network/privateEndpoints" + }, + { + "count": { + "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]", + "where": { + "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]", + "equals": "blob" + } + }, + "greaterOrEquals": 1 + } + ] + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups", + "roleDefinitionIds": [ + "/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "privateDnsZoneId": { + "type": "string" + }, + "privateEndpointName": { + "type": "string" + }, + "location": { + "type": "string" + } + }, + "resources": [ + { + "name": "[[concat(parameters('privateEndpointName'), '/deployedByPolicy')]", + "type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups", + "apiVersion": "2020-03-01", + "location": "[[parameters('location')]", + "properties": { + "privateDnsZoneConfigs": [ + { + "name": "storageBlob-privateDnsZone", + "properties": { + "privateDnsZoneId": "[[parameters('privateDnsZoneId')]" + } + } + ] + } + } + ] + }, + "parameters": { + "privateDnsZoneId": { + "value": "[[parameters('privateDnsZoneId')]" + }, + "privateEndpointName": { + "value": "[[field('name')]" + }, + "location": { + "value": "[[field('location')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-DNSZoneGroup-For-Blob-PrivateEndpoint" + }, + { + "properties": { + "Description": "Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-File Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ", + "DisplayName": "Deploy DNS Zone Group for Storage-File Private Endpoint", + "Mode": "Indexed", + "Parameters": { + "privateDnsZoneId": { + "type": "String", + "metadata": { + "displayName": "privateDnsZoneId", + "strongType": "Microsoft.Network/privateDnsZones" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Network" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Network/privateEndpoints" + }, + { + "count": { + "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]", + "where": { + "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]", + "equals": "file" + } + }, + "greaterOrEquals": 1 + } + ] + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups", + "roleDefinitionIds": [ + "/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "privateDnsZoneId": { + "type": "string" + }, + "privateEndpointName": { + "type": "string" + }, + "location": { + "type": "string" + } + }, + "resources": [ + { + "name": "[[concat(parameters('privateEndpointName'), '/deployedByPolicy')]", + "type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups", + "apiVersion": "2020-03-01", + "location": "[[parameters('location')]", + "properties": { + "privateDnsZoneConfigs": [ + { + "name": "storageFile-privateDnsZone", + "properties": { + "privateDnsZoneId": "[[parameters('privateDnsZoneId')]" + } + } + ] + } + } + ] + }, + "parameters": { + "privateDnsZoneId": { + "value": "[[parameters('privateDnsZoneId')]" + }, + "privateEndpointName": { + "value": "[[field('name')]" + }, + "location": { + "value": "[[field('location')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-DNSZoneGroup-For-File-PrivateEndpoint" + }, + { + "properties": { + "Description": "Deploys the configurations of a Private DNS Zone Group by a parameter for Key Vault Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ", + "DisplayName": "Deploy DNS Zone Group for Key Vault Private Endpoint", + "Mode": "Indexed", + "Parameters": { + "privateDnsZoneId": { + "type": "String", + "metadata": { + "displayName": "privateDnsZoneId", + "strongType": "Microsoft.Network/privateDnsZones" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Network" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Network/privateEndpoints" + }, + { + "count": { + "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]", + "where": { + "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]", + "equals": "vault" + } + }, + "greaterOrEquals": 1 + } + ] + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups", + "roleDefinitionIds": [ + "/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "privateDnsZoneId": { + "type": "string" + }, + "privateEndpointName": { + "type": "string" + }, + "location": { + "type": "string" + } + }, + "resources": [ + { + "name": "[[concat(parameters('privateEndpointName'), '/deployedByPolicy')]", + "type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups", + "apiVersion": "2020-03-01", + "location": "[[parameters('location')]", + "properties": { + "privateDnsZoneConfigs": [ + { + "name": "keyVault-privateDnsZone", + "properties": { + "privateDnsZoneId": "[[parameters('privateDnsZoneId')]" + } + } + ] + } + } + ] + }, + "parameters": { + "privateDnsZoneId": { + "value": "[[parameters('privateDnsZoneId')]" + }, + "privateEndpointName": { + "value": "[[field('name')]" + }, + "location": { + "value": "[[field('location')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-DNSZoneGroup-For-KeyVault-PrivateEndpoint" + }, + { + "properties": { + "Description": "Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Queue Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ", + "DisplayName": "Deploy DNS Zone Group for Storage-Queue Private Endpoint", + "Mode": "Indexed", + "Parameters": { + "privateDnsZoneId": { + "type": "String", + "metadata": { + "displayName": "privateDnsZoneId", + "strongType": "Microsoft.Network/privateDnsZones" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Network" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Network/privateEndpoints" + }, + { + "count": { + "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]", + "where": { + "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]", + "equals": "queue" + } + }, + "greaterOrEquals": 1 + } + ] + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups", + "roleDefinitionIds": [ + "/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "privateDnsZoneId": { + "type": "string" + }, + "privateEndpointName": { + "type": "string" + }, + "location": { + "type": "string" + } + }, + "resources": [ + { + "name": "[[concat(parameters('privateEndpointName'), '/deployedByPolicy')]", + "type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups", + "apiVersion": "2020-03-01", + "location": "[[parameters('location')]", + "properties": { + "privateDnsZoneConfigs": [ + { + "name": "storageQueue-privateDnsZone", + "properties": { + "privateDnsZoneId": "[[parameters('privateDnsZoneId')]" + } + } + ] + } + } + ] + }, + "parameters": { + "privateDnsZoneId": { + "value": "[[parameters('privateDnsZoneId')]" + }, + "privateEndpointName": { + "value": "[[field('name')]" + }, + "location": { + "value": "[[field('location')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-DNSZoneGroup-For-Queue-PrivateEndpoint" + }, + { + "properties": { + "Description": "Deploys the configurations of a Private DNS Zone Group by a parameter for SQL Private Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ", + "DisplayName": "Deploy DNS Zone Group for SQL Private Endpoint", + "Mode": "Indexed", + "Parameters": { + "privateDnsZoneId": { + "type": "String", + "metadata": { + "displayName": "privateDnsZoneId", + "strongType": "Microsoft.Network/privateDnsZones" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Network" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Network/privateEndpoints" + }, + { + "count": { + "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]", + "where": { + "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]", + "equals": "sqlServer" + } + }, + "greaterOrEquals": 1 + } + ] + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups", + "roleDefinitionIds": [ + "/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "privateDnsZoneId": { + "type": "string" + }, + "privateEndpointName": { + "type": "string" + }, + "location": { + "type": "string" + } + }, + "resources": [ + { + "name": "[[concat(parameters('privateEndpointName'), '/deployedByPolicy')]", + "type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups", + "apiVersion": "2020-03-01", + "location": "[[parameters('location')]", + "properties": { + "privateDnsZoneConfigs": [ + { + "name": "sqlServer-privateDnsZone", + "properties": { + "privateDnsZoneId": "[[parameters('privateDnsZoneId')]" + } + } + ] + } + } + ] + }, + "parameters": { + "privateDnsZoneId": { + "value": "[[parameters('privateDnsZoneId')]" + }, + "privateEndpointName": { + "value": "[[field('name')]" + }, + "location": { + "value": "[[field('location')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-DNSZoneGroup-For-Sql-PrivateEndpoint" + }, + { + "properties": { + "Description": "Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Table Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ", + "DisplayName": "Deploy DNS Zone Group for Storage-Table Private Endpoint", + "Mode": "Indexed", + "Parameters": { + "privateDnsZoneId": { + "type": "String", + "metadata": { + "displayName": "privateDnsZoneId", + "strongType": "Microsoft.Network/privateDnsZones" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Network" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Network/privateEndpoints" + }, + { + "count": { + "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]", + "where": { + "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]", + "equals": "table" + } + }, + "greaterOrEquals": 1 + } + ] + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups", + "roleDefinitionIds": [ + "/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "privateDnsZoneId": { + "type": "string" + }, + "privateEndpointName": { + "type": "string" + }, + "location": { + "type": "string" + } + }, + "resources": [ + { + "name": "[[concat(parameters('privateEndpointName'), '/deployedByPolicy')]", + "type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups", + "apiVersion": "2020-03-01", + "location": "[[parameters('location')]", + "properties": { + "privateDnsZoneConfigs": [ + { + "name": "storageTable-privateDnsZone", + "properties": { + "privateDnsZoneId": "[[parameters('privateDnsZoneId')]" + } + } + ] + } + } + ] + }, + "parameters": { + "privateDnsZoneId": { + "value": "[[parameters('privateDnsZoneId')]" + }, + "privateEndpointName": { + "value": "[[field('name')]" + }, + "location": { + "value": "[[field('location')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-DNSZoneGroup-For-Table-PrivateEndpoint" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Event Grid subscriptions to stream to a Log Analytics workspace when any Event Grid subscriptions which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Event Grid subscriptions to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.EventGrid/eventSubscriptions" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.EventGrid/eventSubscriptions/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-EventGridSub" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Event Grid Topic to stream to a Log Analytics workspace when any Event Grid Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Event Grid Topic to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.EventGrid/topics" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.EventGrid/topics/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "DeliveryFailures", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "PublishFailures", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-EventGridTopic" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Event Hubs to stream to a Log Analytics workspace when any Event Hubs which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Event Hubs to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.EventHub/namespaces" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.EventHub/namespaces/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "ArchiveLogs", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "OperationalLogs", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "AutoScaleLogs", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "KafkaCoordinatorLogs", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "KafkaUserErrorLogs", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "EventHubVNetConnectionEvent", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "CustomerManagedKeyUserLogs", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-EventHub" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Event Grid System Topic to stream to a Log Analytics workspace when any Event Grid System Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Event Grid System Topic to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.EventGrid/systemTopics" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.EventGrid/systemTopics/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "DeliveryFailures", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-EventGridSystemTopic" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for ExpressRoute to stream to a Log Analytics workspace when any ExpressRoute which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for ExpressRoute to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Network/expressRouteCircuits" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Network/expressRouteCircuits/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "PeeringRouteLog", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-ExpressRoute" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Firewall to stream to a Log Analytics workspace when any Firewall which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Firewall to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Network/azureFirewalls" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Network/azureFirewalls/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "AzureFirewallApplicationRule", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "AzureFirewallNetworkRule", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "AzureFirewallDnsProxy", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-Firewall" + }, + { + "properties": { + "Description": "Deploys Azure Firewall Manager policy in subscription where the policy is assigned.", + "DisplayName": "Deploy Azure Firewall Manager policy in the subscription", + "Mode": "Indexed", + "Parameters": { + "fwpolicy": { + "type": "Object", + "metadata": { + "displayName": "fwpolicy", + "description": "Object describing Azure Firewall Policy" + }, + "defaultValue": {} + }, + "fwPolicyRegion": { + "type": "String", + "metadata": { + "displayName": "fwPolicyRegion", + "description": "Select Azure region for Azure Firewall Policy", + "strongType": "location" + } + }, + "rgName": { + "type": "String", + "metadata": { + "displayName": "rgName", + "description": "Provide name for resource group." + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Network" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Resources/subscriptions" + } + ] + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Network/firewallPolicies", + "deploymentScope": "Subscription", + "existenceScope": "ResourceGroup", + "resourceGroupName": "[[parameters('rgName')]", + "roleDefinitionIds": [ + "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c" + ], + "deployment": { + "location": "northeurope", + "properties": { + "mode": "incremental", + "parameters": { + "rgName": { + "value": "[[parameters('rgName')]" + }, + "fwPolicy": { + "value": "[[parameters('fwPolicy')]" + }, + "fwPolicyRegion": { + "value": "[[parameters('fwPolicyRegion')]" + } + }, + "template": { + "$schema": "http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json", + "contentVersion": "1.0.0.0", + "parameters": { + "rgName": { + "type": "string" + }, + "fwPolicy": { + "type": "object" + }, + "fwPolicyRegion": { + "type": "string" + } + }, + "resources": [ + { + "type": "Microsoft.Resources/resourceGroups", + "apiVersion": "2018-05-01", + "name": "[[parameters('rgName')]", + "location": "[[deployment().location]", + "properties": {} + }, + { + "type": "Microsoft.Resources/deployments", + "apiVersion": "2018-05-01", + "name": "fwpolicies", + "resourceGroup": "[[parameters('rgName')]", + "dependsOn": [ + "[[resourceId('Microsoft.Resources/resourceGroups/', parameters('rgName'))]" + ], + "properties": { + "mode": "Incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json", + "contentVersion": "1.0.0.0", + "parameters": {}, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Network/firewallPolicies", + "apiVersion": "2019-09-01", + "name": "[[parameters('fwpolicy').firewallPolicyName]", + "location": "[[parameters('fwpolicy').location]", + "dependsOn": [], + "tags": {}, + "properties": {}, + "resources": [ + { + "type": "ruleGroups", + "apiVersion": "2019-09-01", + "name": "[[parameters('fwpolicy').ruleGroups.name]", + "dependsOn": [ + "[[resourceId('Microsoft.Network/firewallPolicies',parameters('fwpolicy').firewallPolicyName)]" + ], + "properties": { + "priority": "[[parameters('fwpolicy').ruleGroups.properties.priority]", + "rules": "[[parameters('fwpolicy').ruleGroups.properties.rules]" + } + } + ] + } + ], + "outputs": {} + } + } + } + ], + "outputs": {} + } + } + } + } + } + } + }, + "name": "Deploy-FirewallPolicy" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Front Door to stream to a Log Analytics workspace when any Front Door which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Front Door to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Network/frontDoors" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Network/frontDoors/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "FrontdoorAccessLog", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "FrontdoorWebApplicationFirewallLog", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-FrontDoor" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Azure Function App to stream to a Log Analytics workspace when any function app which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Azure Function App to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Web/sites" + }, + { + "value": "[[field('kind')]", + "notEquals": "app" + } + ] + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Web/sites/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "FunctionAppLogs", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-Function" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for HDInsight to stream to a Log Analytics workspace when any HDInsight which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for HDInsight to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.HDInsight/clusters" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.HDInsight/clusters/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-HDInsight" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for IoT Hub to stream to a Log Analytics workspace when any IoT Hub which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for IoT Hub to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Devices/IotHubs" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Devices/IotHubs/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "Connections", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "DeviceTelemetry", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "C2DCommands", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "DeviceIdentityOperations", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "FileUploadOperations", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "Routes", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "D2CTwinOperations", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "C2DTwinOperations", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "TwinQueries", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "JobsOperations", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "DirectMethods", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "DistributedTracing", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "Configurations", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "DeviceStreams", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-iotHub" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Key Vault to stream to a Log Analytics workspace when any Key Vault which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Key Vault to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.KeyVault/vaults" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "name": "setByPolicy", + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.KeyVault/vaults/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "AuditEvent", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-KeyVault" + }, + { + "properties": { + "Description": "This policy denies creation of Key Vaults with IP Firewall exposed to all public endpoints", + "DisplayName": "Public network access should be disabled for KeyVault", + "Mode": "Indexed", + "Parameters": { + "effect": { + "type": "String", + "allowedValues": [ + "Audit", + "Deny", + "Disabled" + ], + "defaultValue": "Deny", + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Key Vault" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.KeyVault/vaults" + }, + { + "field": "Microsoft.KeyVault/vaults/networkAcls.defaultAction", + "notequals": "Deny" + } + ] + }, + "then": { + "effect": "[[parameters('effect')]" + } + } + }, + "name": "Deny-PublicEndpoint-KeyVault" + }, + { + "properties": { + "Description": "This policy enables you to ensure when a Key Vault is created with out soft delete enabled it will be added.", + "DisplayName": "KeyVault SoftDelete should be enabled", + "Mode": "Indexed", + "Parameters": {}, + "metadata": { + "version": "1.0.0", + "category": "Key Vault" + }, + "PolicyRule": { + "if": { + "anyOf": [ + { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.KeyVault/vaults" + }, + { + "field": "Microsoft.KeyVault/vaults/enableSoftDelete", + "notEquals": false + } + ] + } + ] + }, + "then": { + "effect": "append", + "details": [ + { + "field": "Microsoft.KeyVault/vaults/enableSoftDelete", + "value": true + } + ] + } + } + }, + "name": "Append-KV-SoftDelete" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Load Balancer to stream to a Log Analytics workspace when any Load Balancer which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Load Balancer to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Network/loadBalancers" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Network/loadBalancers/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "timeGrain": null, + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "enabled": false, + "days": 0 + } + } + ], + "logs": [ + { + "category": "LoadBalancerAlertEvent", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "LoadBalancerProbeHealthStatus", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-LoadBalancer" + }, + { + "properties": { + "Description": "Deploy the configurations to the Log Analytics in the subscription. This includes a list of solutions like update, automation etc and enables the vminsight counters. ", + "DisplayName": "Deploy the configurations to the Log Analytics in the subscription", + "Mode": "Indexed", + "Parameters": { + "workspaceName": { + "type": "String", + "metadata": { + "displayName": "workspaceName", + "description": "Provide name of existing Log Analytics workspace" + } + }, + "workspaceRegion": { + "type": "String", + "metadata": { + "displayName": "workspaceRegion", + "description": "Select region of existing Log Analytics workspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.OperationalInsights/workspaces" + } + ] + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.OperationalInsights/workspaces", + "deploymentScope": "resourceGroup", + "existenceScope": "Subscription", + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "existenceCondition": { + "allOf": [ + { + "field": "name", + "like": "[[parameters('workspaceName')]" + }, + { + "field": "location", + "equals": "[[parameters('workspaceRegion')]" + } + ] + }, + "deployment": { + "properties": { + "mode": "incremental", + "parameters": { + "workspaceName": { + "value": "[[parameters('workspaceName')]" + }, + "workspaceRegion": { + "value": "[[parameters('workspaceRegion')]" + } + }, + "template": { + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "workspaceName": { + "type": "string" + }, + "workspaceRegion": { + "type": "string" + } + }, + "variables": { + "vmInsightsPerfCounters": { + "windowsArray": [ + { + "armName": "counter1", + "objectName": "LogicalDisk", + "counterName": "% Free Space", + "instanceName": "*", + "intervalSeconds": 10 + }, + { + "armName": "counter2", + "objectName": "LogicalDisk", + "counterName": "Avg. Disk sec/Read", + "instanceName": "*", + "intervalSeconds": 10 + }, + { + "armName": "counter3", + "objectName": "LogicalDisk", + "counterName": "Avg. Disk sec/Transfer", + "instanceName": "*", + "intervalSeconds": 10 + }, + { + "armName": "counter4", + "objectName": "LogicalDisk", + "counterName": "Avg. Disk sec/Write", + "instanceName": "*", + "intervalSeconds": 10 + }, + { + "armName": "counter5", + "objectName": "LogicalDisk", + "counterName": "Disk Read Bytes/sec", + "instanceName": "*", + "intervalSeconds": 10 + }, + { + "armName": "counter6", + "objectName": "LogicalDisk", + "counterName": "Disk Reads/sec", + "instanceName": "*", + "intervalSeconds": 10 + }, + { + "armName": "counter7", + "objectName": "LogicalDisk", + "counterName": "Disk Transfers/sec", + "instanceName": "*", + "intervalSeconds": 10 + }, + { + "armName": "counter8", + "objectName": "LogicalDisk", + "counterName": "Disk Write Bytes/sec", + "instanceName": "*", + "intervalSeconds": 10 + }, + { + "armName": "counter9", + "objectName": "LogicalDisk", + "counterName": "Disk Writes/sec", + "instanceName": "*", + "intervalSeconds": 10 + }, + { + "armName": "counter10", + "objectName": "LogicalDisk", + "counterName": "Free Megabytes", + "instanceName": "*", + "intervalSeconds": 10 + }, + { + "armName": "counter11", + "objectName": "Memory", + "counterName": "Available MBytes", + "instanceName": "*", + "intervalSeconds": 10 + }, + { + "armName": "counter12", + "objectName": "Network Adapter", + "counterName": "Bytes Received/sec", + "instanceName": "*", + "intervalSeconds": 10 + }, + { + "armName": "counter13", + "objectName": "Network Adapter", + "counterName": "Bytes Sent/sec", + "instanceName": "*", + "intervalSeconds": 10 + }, + { + "armName": "counter14", + "objectName": "Processor", + "counterName": "% Processor Time", + "instanceName": "*", + "intervalSeconds": 10 + } + ], + "linuxDiskArray": [ + { + "counterName": "% Used Inodes" + }, + { + "counterName": "Free Megabytes" + }, + { + "counterName": "% Used Space" + }, + { + "counterName": "Disk Transfers/sec" + }, + { + "counterName": "Disk Reads/sec" + }, + { + "counterName": "Disk writes/sec" + } + ], + "linuxDiskObject": { + "armResourceName": "Disk", + "objectName": "Logical Disk", + "instanceName": "*", + "intervalSeconds": 10 + }, + "linuxMemoryArray": [ + { + "counterName": "Available MBytes Memory" + } + ], + "linuxMemoryObject": { + "armResourceName": "Memory", + "objectName": "Memory", + "instanceName": "*", + "intervalSeconds": 10 + }, + "linuxNetworkArray": [ + { + "counterName": "Total Bytes Received" + }, + { + "counterName": "Total Bytes Transmitted" + } + ], + "linuxNetworkObject": { + "armResourceName": "Network", + "objectName": "Network", + "instanceName": "*", + "intervalSeconds": 10 + }, + "linuxCpuArray": [ + { + "counterName": "% Processor Time" + } + ], + "linuxCpuObject": { + "armResourceName": "Processor", + "objectName": "Processor", + "instanceName": "*", + "intervalSeconds": 10 + } + }, + "batch1": { + "solutions": [ + { + "name": "[[concat('Security', '(', parameters('workspaceName'), ')')]", + "marketplaceName": "Security" + }, + { + "name": "[[concat('AgentHealthAssessment', '(', parameters('workspaceName'), ')')]", + "marketplaceName": "AgentHealthAssessment" + }, + { + "name": "[[concat('ChangeTracking', '(', parameters('workspaceName'), ')')]", + "marketplaceName": "ChangeTracking" + }, + { + "name": "[[concat('Updates', '(', parameters('workspaceName'), ')')]", + "marketplaceName": "Updates" + }, + { + "name": "[[concat('AzureActivity', '(', parameters('workspaceName'), ')')]", + "marketplaceName": "AzureActivity" + }, + { + "name": "[[concat('AzureAutomation', '(', parameters('workspaceName'), ')')]", + "marketplaceName": "AzureAutomation" + }, + { + "name": "[[concat('ADAssessment', '(', parameters('workspaceName'), ')')]", + "marketplaceName": "ADAssessment" + }, + { + "name": "[[concat('SQLAssessment', '(', parameters('workspaceName'), ')')]", + "marketplaceName": "SQLAssessment" + }, + { + "name": "[[concat('VMInsights', '(', parameters('workspaceName'), ')')]", + "marketplaceName": "VMInsights" + }, + { + "name": "[[concat('ServiceMap', '(', parameters('workspaceName'), ')')]", + "marketplaceName": "ServiceMap" + }, + { + "name": "[[concat('SecurityInsights', '(', parameters('workspaceName'), ')')]", + "marketplaceName": "SecurityInsights" + } + ] + } + }, + "resources": [ + { + "apiVersion": "2015-11-01-preview", + "type": "Microsoft.OperationalInsights/workspaces/datasources", + "name": "[[concat(parameters('workspaceName'), '/LinuxPerfCollection')]", + "kind": "LinuxPerformanceCollection", + "properties": { + "state": "Enabled" + } + }, + { + "apiVersion": "2015-11-01-preview", + "type": "Microsoft.OperationalInsights/workspaces/dataSources", + "name": "[[concat(parameters('workspaceName'), '/', variables('vmInsightsPerfCounters').linuxDiskObject.armResourceName)]", + "kind": "LinuxPerformanceObject", + "properties": { + "performanceCounters": "[[variables('vmInsightsPerfCounters').linuxDiskArray]", + "objectName": "[[variables('vmInsightsPerfCounters').linuxDiskObject.objectName]", + "instanceName": "[[variables('vmInsightsPerfCounters').linuxDiskObject.instanceName]", + "intervalSeconds": "[[variables('vmInsightsPerfCounters').linuxDiskObject.intervalSeconds]" + } + }, + { + "apiVersion": "2015-11-01-preview", + "type": "Microsoft.OperationalInsights/workspaces/dataSources", + "name": "[[concat(parameters('workspaceName'), '/', variables('vmInsightsPerfCounters').linuxMemoryObject.armResourceName)]", + "kind": "LinuxPerformanceObject", + "properties": { + "performanceCounters": "[[variables('vmInsightsPerfCounters').linuxMemoryArray]", + "objectName": "[[variables('vmInsightsPerfCounters').linuxMemoryObject.objectName]", + "instanceName": "[[variables('vmInsightsPerfCounters').linuxMemoryObject.instanceName]", + "intervalSeconds": "[[variables('vmInsightsPerfCounters').linuxMemoryObject.intervalSeconds]" + } + }, + { + "apiVersion": "2015-11-01-preview", + "type": "Microsoft.OperationalInsights/workspaces/dataSources", + "name": "[[concat(parameters('workspaceName'), '/', variables('vmInsightsPerfCounters').linuxCpuObject.armResourceName)]", + "kind": "LinuxPerformanceObject", + "properties": { + "performanceCounters": "[[variables('vmInsightsPerfCounters').linuxCpuArray]", + "objectName": "[[variables('vmInsightsPerfCounters').linuxCpuObject.objectName]", + "instanceName": "[[variables('vmInsightsPerfCounters').linuxCpuObject.instanceName]", + "intervalSeconds": "[[variables('vmInsightsPerfCounters').linuxCpuObject.intervalSeconds]" + } + }, + { + "apiVersion": "2015-11-01-preview", + "type": "Microsoft.OperationalInsights/workspaces/dataSources", + "name": "[[concat(parameters('workspaceName'), '/', variables('vmInsightsPerfCounters').linuxNetworkObject.armResourceName)]", + "kind": "LinuxPerformanceObject", + "properties": { + "performanceCounters": "[[variables('vmInsightsPerfCounters').linuxNetworkArray]", + "objectName": "[[variables('vmInsightsPerfCounters').linuxNetworkObject.objectName]", + "instanceName": "[[variables('vmInsightsPerfCounters').linuxNetworkObject.instanceName]", + "intervalSeconds": "[[variables('vmInsightsPerfCounters').linuxNetworkObject.intervalSeconds]" + } + }, + { + "apiVersion": "2015-11-01-preview", + "type": "Microsoft.OperationalInsights/workspaces/dataSources", + "name": "[[concat(parameters('workspaceName'), '/', variables('vmInsightsPerfCounters').windowsArray[copyIndex()].armName)]", + "kind": "WindowsPerformanceCounter", + "copy": { + "name": "counterCopy", + "count": "[[length(variables('vmInsightsPerfCounters').windowsArray)]" + }, + "properties": { + "objectName": "[[variables('vmInsightsPerfCounters').windowsArray[copyIndex()].objectName]", + "instanceName": "[[variables('vmInsightsPerfCounters').windowsArray[copyIndex()].instanceName]", + "intervalSeconds": "[[variables('vmInsightsPerfCounters').windowsArray[copyIndex()].intervalSeconds]", + "counterName": "[[variables('vmInsightsPerfCounters').windowsArray[copyIndex()].counterName]" + } + }, + { + "apiVersion": "2015-11-01-preview", + "type": "Microsoft.OperationsManagement/solutions", + "name": "[[concat(variables('batch1').solutions[copyIndex()].Name)]", + "location": "[[parameters('workspaceRegion')]", + "copy": { + "name": "solutionCopy", + "count": "[[length(variables('batch1').solutions)]" + }, + "properties": { + "workspaceResourceId": "[[resourceId('Microsoft.OperationalInsights/workspaces/', parameters('workspaceName'))]" + }, + "plan": { + "name": "[[variables('batch1').solutions[copyIndex()].name]", + "product": "[[concat('OMSGallery/', variables('batch1').solutions[copyIndex()].marketplaceName)]", + "promotionCode": "", + "publisher": "Microsoft" + } + } + ], + "outputs": {} + } + } + } + } + } + } + }, + "name": "Deploy-LA-Config" + }, + { + "properties": { + "Description": "Deploys Log Analytics and Automation account to the subscription where the policy is assigned.", + "DisplayName": "Deploy the Log Analytics in the subscription", + "Mode": "Indexed", + "Parameters": { + "workspaceName": { + "type": "String", + "metadata": { + "displayName": "workspaceName", + "description": "Provide name for log analytics workspace" + } + }, + "automationAccountName": { + "type": "String", + "metadata": { + "displayName": "automationAccountName", + "description": "Provide name for automation account" + } + }, + "workspaceRegion": { + "type": "String", + "metadata": { + "displayName": "workspaceRegion", + "description": "Select Azure region for Log Analytics" + } + }, + "automationRegion": { + "type": "String", + "metadata": { + "displayName": "automationRegion", + "description": "Select Azure region for Automation account" + } + }, + "retentionInDays": { + "type": "string", + "defaultValue": "30", + "metadata": { + "displayName": "Data retention", + "description": "Select data retention (days) for Log Analytics." + } + }, + "rgName": { + "type": "String", + "metadata": { + "displayName": "rgName", + "description": "Provide name for resource group." + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Resources/subscriptions" + } + ] + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.OperationalInsights/workspaces", + "deploymentScope": "Subscription", + "existenceScope": "Subscription", + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "existenceCondition": { + "allOf": [ + { + "field": "name", + "like": "[[parameters('workspaceName')]" + } + ] + }, + "deployment": { + "location": "northeurope", + "properties": { + "mode": "incremental", + "parameters": { + "rgName": { + "value": "[[parameters('rgName')]" + }, + "retentionInDays": { + "value": "[[parameters('retentionInDays')]" + }, + "workspaceName": { + "value": "[[parameters('workspaceName')]" + }, + "workspaceRegion": { + "value": "[[parameters('workspaceRegion')]" + }, + "automationAccountName": { + "value": "[[parameters('automationAccountName')]" + }, + "automationRegion": { + "value": "[[parameters('automationRegion')]" + } + }, + "template": { + "$schema": "http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json", + "contentVersion": "1.0.0.0", + "parameters": { + "rgName": { + "type": "string" + }, + "workspaceName": { + "type": "string" + }, + "workspaceRegion": { + "type": "string" + }, + "automationAccountName": { + "type": "string" + }, + "automationRegion": { + "type": "string" + }, + "retentionInDays": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Resources/resourceGroups", + "apiVersion": "2018-05-01", + "name": "[[parameters('rgName')]", + "location": "[[deployment().location]", + "properties": {} + }, + { + "type": "Microsoft.Resources/deployments", + "apiVersion": "2018-05-01", + "name": "log-analytics", + "resourceGroup": "[[parameters('rgName')]", + "dependsOn": [ + "[[resourceId('Microsoft.Resources/resourceGroups/', parameters('rgName'))]" + ], + "properties": { + "mode": "Incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json", + "contentVersion": "1.0.0.0", + "parameters": {}, + "variables": {}, + "resources": [ + { + "apiversion": "2015-10-31", + "location": "[[parameters('AutomationRegion')]", + "name": "[[parameters('AutomationAccountName')]", + "type": "Microsoft.Automation/automationAccounts", + "comments": "Automation account for ", + "properties": { + "sku": { + "name": "OMS" + } + } + }, + { + "apiVersion": "2017-03-15-preview", + "location": "[[parameters('workspaceRegion')]", + "name": "[[parameters('workspaceName')]", + "type": "Microsoft.OperationalInsights/workspaces", + "properties": { + "sku": { + "name": "pernode" + }, + "enableLogAccessUsingOnlyResourcePermissions": true, + "retentionInDays": "[[int(parameters('retentionInDays'))]" + }, + "resources": [ + { + "name": "Automation", + "type": "linkedServices", + "apiVersion": "2015-11-01-preview", + "dependsOn": [ + "[[resourceId('Microsoft.OperationalInsights/workspaces/', parameters('workspaceName'))]", + "[[resourceId('Microsoft.Automation/automationAccounts/', parameters('AutomationAccountName'))]" + ], + "properties": { + "resourceId": "[[concat(subscription().id, '/resourceGroups/', parameters('rgName'), '/providers/Microsoft.Automation/automationAccounts/', parameters('AutomationAccountName'))]" + } + } + ] + } + ], + "outputs": {} + } + } + } + ], + "outputs": {} + } + } + } + } + } + } + }, + "name": "Deploy-Log-Analytics" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Logic Apps integration service environment to stream to a Log Analytics workspace when any Logic Apps integration service environment which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Logic Apps integration service environment to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Logic/integrationAccounts" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Logic/integrationAccounts/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [], + "logs": [ + { + "category": "IntegrationAccountTrackingEvents", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-LogicAppsISE" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Logic Apps Workflow runtimeto stream to a Log Analytics workspace when any Logic Apps Workflow runtime which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Logic Apps Workflow runtime to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Logic/workflows" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Logic/workflows/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "WorkflowRuntime", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-LogicAppsWF" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for MariaDB to stream to a Log Analytics workspace when any MariaDB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for MariaDB to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.DBforMariaDB/servers" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.DBforMariaDB/servers/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "MySqlSlowLogs", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "MySqlAuditLogs", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-MariaDB" + }, + { + "properties": { + "Description": "This policy denies the creation of Maria DB accounts with exposed public endpoints", + "DisplayName": "Public network access should be disabled for MariaDB", + "Mode": "Indexed", + "Parameters": { + "effect": { + "type": "String", + "allowedValues": [ + "Audit", + "Deny", + "Disabled" + ], + "defaultValue": "Deny", + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "SQL" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.DBforMariaDB/servers" + }, + { + "field": "Microsoft.DBforMariaDB/servers/publicNetworkAccess", + "notequals": "Disabled" + } + ] + }, + "then": { + "effect": "[[parameters('effect')]" + } + } + }, + "name": "Deny-PublicEndpoint-MariaDB" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Machine Learning workspace to stream to a Log Analytics workspace when any Machine Learning workspace which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Machine Learning workspace to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.MachineLearningServices/workspaces" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.MachineLearningServices/workspaces/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "Run", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + }, + { + "category": "Model", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": true + } + }, + { + "category": "Quota", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + }, + { + "category": "Resource", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "AmlComputeClusterEvent", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "AmlComputeClusterNodeEvent", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "AmlComputeJobEvent", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "AmlComputeCpuGpuUtilization", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "AmlRunStatusChangedEvent", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-MlWorkspace" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Database for MySQL to stream to a Log Analytics workspace when any Database for MySQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Database for MySQL to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.DBforMySQL/servers" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.DBforMySQL/servers/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "MySqlSlowLogs", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "MySqlAuditLogs", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-MySQL" + }, + { + "properties": { + "Description": "This policy denies creation of MySql DB accounts with exposed public endpoints", + "DisplayName": "Public network access should be disabled for MySQL", + "Mode": "Indexed", + "Parameters": { + "effect": { + "type": "String", + "allowedValues": [ + "Audit", + "Deny", + "Disabled" + ], + "defaultValue": "Deny", + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "SQL" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.DBforMySQL/servers" + }, + { + "field": "Microsoft.DBforMySQL/servers/publicNetworkAccess", + "notequals": "Disabled" + } + ] + }, + "then": { + "effect": "[[parameters('effect')]" + } + } + }, + "name": "Deny-PublicEndpoint-MySQL" + }, + { + "properties": { + "Description": "Deploys an Azure DDoS Protection Standard plan", + "DisplayName": "Deploy an Azure DDoS Protection Standard plan", + "Mode": "Indexed", + "Parameters": { + "ddosName": { + "type": "String", + "metadata": { + "displayName": "ddosName", + "description": "Name of the Virtual WAN" + } + }, + "ddosRegion": { + "type": "String", + "metadata": { + "displayName": "ddosRegion", + "description": "Select Azure region for Virtual WAN", + "strongType": "location" + } + }, + "rgName": { + "type": "String", + "metadata": { + "displayName": "rgName", + "description": "Provide name for resource group." + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Network" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Resources/subscriptions" + } + ] + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Network/ddosProtectionPlans", + "deploymentScope": "Subscription", + "existenceScope": "ResourceGroup", + "resourceGroupName": "[[parameters('rgName')]", + "name": "[[parameters('ddosName')]", + "roleDefinitionIds": [ + "/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7" + ], + "deployment": { + "location": "northeurope", + "properties": { + "mode": "incremental", + "parameters": { + "rgName": { + "value": "[[parameters('rgName')]" + }, + "ddosname": { + "value": "[[parameters('ddosname')]" + }, + "ddosregion": { + "value": "[[parameters('ddosRegion')]" + } + }, + "template": { + "$schema": "http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json", + "contentVersion": "1.0.0.0", + "parameters": { + "rgName": { + "type": "string" + }, + "ddosname": { + "type": "string" + }, + "ddosRegion": { + "type": "string" + } + }, + "resources": [ + { + "type": "Microsoft.Resources/resourceGroups", + "apiVersion": "2018-05-01", + "name": "[[parameters('rgName')]", + "location": "[[deployment().location]", + "properties": {} + }, + { + "type": "Microsoft.Resources/deployments", + "apiVersion": "2018-05-01", + "name": "ddosprotection", + "resourceGroup": "[[parameters('rgName')]", + "dependsOn": [ + "[[resourceId('Microsoft.Resources/resourceGroups/', parameters('rgName'))]" + ], + "properties": { + "mode": "Incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json", + "contentVersion": "1.0.0.0", + "parameters": {}, + "resources": [ + { + "type": "Microsoft.Network/ddosProtectionPlans", + "apiVersion": "2019-12-01", + "name": "[[parameters('ddosName')]", + "location": "[[parameters('ddosRegion')]", + "properties": {} + } + ], + "outputs": {} + } + } + } + ], + "outputs": {} + } + } + } + } + } + } + }, + "name": "Deploy-DDoSProtection" + }, + { + "properties": { + "Description": "This policy denies the creation of vNet Peerings under the assigned scope.", + "DisplayName": "Deny vNet peering ", + "Mode": "Indexed", + "Parameters": { + "effect": { + "type": "String", + "allowedValues": [ + "Audit", + "Deny", + "Disabled" + ], + "defaultValue": "Deny", + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Network" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Network/virtualNetworks/virtualNetworkPeerings" + }, + "then": { + "effect": "[[parameters('effect')]" + } + } + }, + "name": "Deny-VNet-Peering" + }, + { + "properties": { + "Description": "This policy denies the creation of a private DNS in the current scope, used in combination with policies that create centralized private DNS in connectivity subscription", + "DisplayName": "Deny the creation of private DNS", + "Mode": "Indexed", + "Parameters": { + "effect": { + "type": "String", + "allowedValues": [ + "Audit", + "Deny", + "Disabled" + ], + "defaultValue": "Deny", + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Network" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Network/privateDnsZones" + }, + "then": { + "effect": "[[parameters('effect')]" + } + } + }, + "name": "Deny-Private-DNS-Zones" + }, + { + "properties": { + "Description": "This policy denies creation of Public IPs under the assigned scope.", + "DisplayName": "Deny the creation of public IP", + "Mode": "Indexed", + "Parameters": { + "effect": { + "type": "String", + "allowedValues": [ + "Audit", + "Deny", + "Disabled" + ], + "defaultValue": "Deny", + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Network" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Network/publicIPAddresses" + }, + "then": { + "effect": "[[parameters('effect')]" + } + } + }, + "name": "Deny-PublicIP" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Network Interfaces to stream to a Log Analytics workspace when any Network Interfaces which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Network Interfaces to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Network/networkInterfaces" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Network/networkInterfaces/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "timeGrain": null, + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "enabled": false, + "days": 0 + } + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-NIC" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Public IP addresses to stream to a Log Analytics workspace when any Public IP addresses which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Public IP addresses to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Network/publicIPAddresses" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Network/publicIPAddresses/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "timeGrain": null, + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "enabled": false, + "days": 0 + } + } + ], + "logs": [ + { + "category": "DDoSProtectionNotifications", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "DDoSMitigationFlowLogs", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "DDoSMitigationReports", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-PublicIP" + }, + { + "properties": { + "Description": "Deploys NSG flow logs and traffic analytics to a storageaccountid with a specfied retention period.", + "DisplayName": "Deploys NSG flow logs and traffic analytics", + "Mode": "Indexed", + "Parameters": { + "retention": { + "type": "Integer", + "metadata": { + "displayName": "Retention" + }, + "defaultValue": 5 + }, + "storageAccountResourceId": { + "type": "String", + "metadata": { + "displayName": "Storage Account Resource Id", + "strongType": "Microsoft.Storage/storageAccounts" + } + }, + "trafficAnalyticsInterval": { + "type": "Integer", + "metadata": { + "displayName": "Traffic Analytics processing interval mins (10/60)" + }, + "defaultValue": 60 + }, + "flowAnalyticsEnabled": { + "type": "Boolean", + "metadata": { + "displayName": "Enable Traffic Analytics" + }, + "defaultValue": false + }, + "logAnalytics": { + "type": "String", + "metadata": { + "strongType": "omsWorkspace", + "displayName": "Resource ID of Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID." + }, + "defaultValue": "" + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Network/networkSecurityGroups" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Network/networkWatchers/flowLogs", + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "resourceGroupName": "NetworkWatcherRG", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Network/networkWatchers/flowLogs/enabled", + "equals": "true" + }, + { + "field": "Microsoft.Network/networkWatchers/flowLogs/flowAnalyticsConfiguration.networkWatcherFlowAnalyticsConfiguration.enabled", + "equals": "[[parameters('flowAnalyticsEnabled')]" + } + ] + }, + "deployment": { + "properties": { + "mode": "incremental", + "parameters": { + "networkSecurityGroupName": { + "value": "[[field('name')]" + }, + "resourceGroupName": { + "value": "[[resourceGroup().name]" + }, + "location": { + "value": "[[field('location')]" + }, + "storageAccountResourceId": { + "value": "[[parameters('storageAccountResourceId')]" + }, + "retention": { + "value": "[[parameters('retention')]" + }, + "flowAnalyticsEnabled": { + "value": "[[parameters('flowAnalyticsEnabled')]" + }, + "trafficAnalyticsInterval": { + "value": "[[parameters('trafficAnalyticsInterval')]" + }, + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + } + }, + "template": { + "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "networkSecurityGroupName": { + "type": "string" + }, + "resourceGroupName": { + "type": "string" + }, + "location": { + "type": "string" + }, + "storageAccountResourceId": { + "type": "string" + }, + "retention": { + "type": "int" + }, + "flowAnalyticsEnabled": { + "type": "bool" + }, + "trafficAnalyticsInterval": { + "type": "int" + }, + "logAnalytics": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Network/networkWatchers/flowLogs", + "apiVersion": "2020-05-01", + "name": "[[take(concat('NetworkWatcher_', toLower(parameters('location')), '/', parameters('networkSecurityGroupName'), '-', parameters('resourceGroupName'), '-flowlog' ), 80)]", + "location": "[[parameters('location')]", + "properties": { + "targetResourceId": "[[resourceId(parameters('resourceGroupName'), 'Microsoft.Network/networkSecurityGroups', parameters('networkSecurityGroupName'))]", + "storageId": "[[parameters('storageAccountResourceId')]", + "enabled": true, + "retentionPolicy": { + "enabled": true, + "days": "[[parameters('retention')]" + }, + "format": { + "type": "JSON", + "version": 2 + }, + "flowAnalyticsConfiguration": { + "networkWatcherFlowAnalyticsConfiguration": { + "enabled": "[[bool(parameters('flowAnalyticsEnabled'))]", + "trafficAnalyticsInterval": "[[parameters('trafficAnalyticsInterval')]", + "workspaceId": "[[if(not(empty(parameters('logAnalytics'))), reference(parameters('logAnalytics'), '2020-03-01-preview', 'Full').properties.customerId, json('null')) ]", + "workspaceRegion": "[[if(not(empty(parameters('logAnalytics'))), reference(parameters('logAnalytics'), '2020-03-01-preview', 'Full').location, json('null')) ]", + "workspaceResourceId": "[[if(not(empty(parameters('logAnalytics'))), parameters('logAnalytics'), json('null'))]" + } + } + } + } + ], + "outputs": {} + } + } + } + } + } + } + }, + "name": "Deploy-Nsg-FlowLogs" + }, + { + "properties": { + "Description": "This policy denies the creation of a subsnet with out an Network Security Group. NSG help to protect traffic across subnet-level.", + "DisplayName": "Subnets should have a Network Security Group ", + "Mode": "Indexed", + "Parameters": { + "effect": { + "type": "String", + "allowedValues": [ + "Audit", + "Deny", + "Disabled" + ], + "defaultValue": "Deny", + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Network" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Network/virtualNetworks/subnets" + }, + { + "field": "Microsoft.Network/virtualNetworks/subnets/networkSecurityGroup.id", + "exists": "false" + } + ] + }, + "then": { + "effect": "[[parameters('effect')]" + } + } + }, + "name": "Deny-Subnet-Without-Nsg" + }, + { + "properties": { + "displayName": "Subnets should have a User Defined Route", + "policyType": "Custom", + "mode": "Indexed", + "description": "This policy denies the creation of a subsnet with out a User Defined Route.", + "metadata": { + "version": "1.0.0", + "category": "Network" + }, + "parameters": { + "effect": { + "type": "String", + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + }, + "allowedValues": [ + "Audit", + "Deny", + "Disabled" + ], + "defaultValue": "Deny" + } + }, + "policyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Network/virtualNetworks/subnets" + }, + { + "field": "Microsoft.Network/virtualNetworks/subnets/routeTable.id", + "exists": "false" + } + ] + }, + "then": { + "effect": "[[parameters('effect')]" + } + } + }, + "name": "Deny-Subnet-Without-Udr" + }, + { + "Properties": { + "Description": "This policy denies the creation of vNet Peerings outside of the same subscriptions under the assigned scope.", + "DisplayName": "Deny vNet peering cross subscription.", + "Mode": "Indexed", + "metadata": { + "version": "1.0.0.0", + "category": "Network" + }, + "Parameters": { + "effect": { + "type": "String", + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + }, + "allowedValues": [ + "Audit", + "Deny", + "Disabled" + ], + "defaultValue": "Deny" + } + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Network/virtualNetworks/virtualNetworkPeerings" + }, + { + "field": "Microsoft.Network/virtualNetworks/virtualNetworkPeerings/remoteVirtualNetwork.id", + "notcontains": "[[subscription().id]" + } + ] + }, + "then": { + "effect": "[[parameters('effect')]" + } + } + }, + "name": "Deny-VNET-Peer-Cross-Sub" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Network Security Groups to stream to a Log Analytics workspace when any Network Security Groups which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Network Security Groups to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Network/networkSecurityGroups" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Network/networkSecurityGroups/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [], + "logs": [ + { + "category": "NetworkSecurityGroupEvent", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "NetworkSecurityGroupRuleCounter", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-NetworkSecurityGroups" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Database for PostgreSQL to stream to a Log Analytics workspace when any Database for PostgreSQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Database for PostgreSQL to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.DBforPostgreSQL/servers" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.DBforPostgreSQL/servers/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "PostgreSQLLogs", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "QueryStoreRuntimeStatistics", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "QueryStoreWaitStatistics", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-PostgreSQL" + }, + { + "properties": { + "Description": "This policy denies creation of Postgre SQL DB accounts with exposed public endpoints", + "DisplayName": "Public network access should be disabled for PostgreSql", + "Mode": "Indexed", + "Parameters": { + "effect": { + "type": "String", + "allowedValues": [ + "Audit", + "Deny", + "Disabled" + ], + "defaultValue": "Deny", + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "SQL" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.DBforPostgreSQL/servers" + }, + { + "field": "Microsoft.DBforPostgreSQL/servers/publicNetworkAccess", + "notequals": "Disabled" + } + ] + }, + "then": { + "effect": "[[parameters('effect')]" + } + } + }, + "name": "Deny-PublicEndpoint-PostgreSql" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Power BI Embedded to stream to a Log Analytics workspace when any Power BI Embedded which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Power BI Embedded to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.PowerBIDedicated/capacities" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.PowerBIDedicated/capacities/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "Engine", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-PowerBIEmbedded" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Recovery Services vaults to stream to a Log Analytics workspace when any Recovery Services vaults which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Recovery Services vaults to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.RecoveryServices/vaults" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allof": [ + { + "count": { + "field": "Microsoft.Insights/diagnosticSettings/logs[*]", + "where": { + "allof": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs[*].Category", + "in": [ + "CoreAzureBackup", + "AddonAzureBackupJobs", + "AddonAzureBackupAlerts", + "AddonAzureBackupPolicy", + "AddonAzureBackupStorage", + "AddonAzureBackupProtectedInstance", + "AzureBackupReport" + ] + }, + { + "field": "Microsoft.Insights/diagnosticSettings/logs[*].Enabled", + "equals": "True" + } + ] + } + }, + "Equals": 7 + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/logAnalyticsDestinationType", + "equals": "Dedicated" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.RecoveryServices/vaults/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "logAnalyticsDestinationType": "Dedicated", + "metrics": [], + "logs": [ + { + "category": "CoreAzureBackup", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "AddonAzureBackupAlerts", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "AddonAzureBackupJobs", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "AddonAzureBackupPolicy", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "AddonAzureBackupProtectedInstance", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "AddonAzureBackupStorage", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "AzureBackupReport", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-RecoveryVault" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Redis Cache to stream to a Log Analytics workspace when any Redis Cache which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Redis Cache to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Cache/redis" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Cache/redis/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-RedisCache" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Relay to stream to a Log Analytics workspace when any Relay which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Relay to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Relay/namespaces" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Relay/namespaces/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "HybridConnectionsEvent", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-Relay" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Search Services to stream to a Log Analytics workspace when any Search Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Search Services to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Search/searchServices" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Search/searchServices/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "OperationLogs", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-SearchServices" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for ServiceBus to stream to a Log Analytics workspace when any ServiceBus which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Service Bus namespaces to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.ServiceBus/namespaces" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.ServiceBus/namespaces/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "OperationalLogs", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-ServiceBus" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for SignalR to stream to a Log Analytics workspace when any SignalR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for SignalR to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.SignalRService/SignalR" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.SignalRService/SignalR/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "AllLogs", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-SignalR" + }, + { + "properties": { + "Description": "Deploy auditing settings to SQL Database when it not exist in the deployment", + "DisplayName": "Deploy SQL database auditing settings", + "Mode": "Indexed", + "Parameters": { + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "SQL" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Sql/servers/databases" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Sql/servers/databases/auditingSettings", + "name": "default", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Sql/servers/databases/auditingSettings/state", + "equals": "enabled" + }, + { + "field": "Microsoft.Sql/servers/databases/auditingSettings/isAzureMonitorTargetEnabled", + "equals": "true" + } + ] + }, + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "location": { + "type": "string" + }, + "sqlServerName": { + "type": "string" + }, + "sqlServerDataBaseName": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "name": "[[concat( parameters('sqlServerName'),'/',parameters('sqlServerDataBaseName'),'/default')]", + "type": "Microsoft.Sql/servers/databases/auditingSettings", + "apiVersion": "2017-03-01-preview", + "properties": { + "state": "enabled", + "auditActionsAndGroups": [ + "BATCH_COMPLETED_GROUP", + "DATABASE_OBJECT_CHANGE_GROUP", + "SCHEMA_OBJECT_CHANGE_GROUP", + "BACKUP_RESTORE_GROUP", + "APPLICATION_ROLE_CHANGE_PASSWORD_GROUP", + "DATABASE_PRINCIPAL_CHANGE_GROUP", + "DATABASE_PRINCIPAL_IMPERSONATION_GROUP", + "DATABASE_ROLE_MEMBER_CHANGE_GROUP", + "USER_CHANGE_PASSWORD_GROUP", + "DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP", + "DATABASE_OBJECT_PERMISSION_CHANGE_GROUP", + "DATABASE_PERMISSION_CHANGE_GROUP", + "SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP", + "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP", + "FAILED_DATABASE_AUTHENTICATION_GROUP" + ], + "isAzureMonitorTargetEnabled": true + } + } + ], + "outputs": {} + }, + "parameters": { + "location": { + "value": "[[field('location')]" + }, + "sqlServerName": { + "value": "[[first(split(field('fullname'),'/'))]" + }, + "sqlServerDataBaseName": { + "value": "[[field('name')]" + } + } + } + }, + "roleDefinitionIds": [ + "/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3" + ] + } + } + } + }, + "name": "Deploy-Sql-AuditingSettings" + }, + { + "properties": { + "Description": "Deploy the Transparent Data Encryption when it is not enabled in the deployment", + "DisplayName": "Deploy SQL Database Transparent Data Encryption ", + "Mode": "Indexed", + "Parameters": { + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "SQL" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Sql/servers/databases" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Sql/servers/databases/transparentDataEncryption", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Sql/transparentDataEncryption.status", + "equals": "Enabled" + } + ] + }, + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "location": { + "type": "string" + }, + "sqlServerName": { + "type": "string" + }, + "sqlServerDataBaseName": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "name": "[[concat( parameters('sqlServerName'),'/',parameters('sqlServerDataBaseName'),'/current')]", + "type": "Microsoft.Sql/servers/databases/transparentDataEncryption", + "apiVersion": "2014-04-01", + "properties": { + "status": "Enabled" + } + } + ], + "outputs": {} + }, + "parameters": { + "location": { + "value": "[[field('location')]" + }, + "sqlServerName": { + "value": "[[first(split(field('fullname'),'/'))]" + }, + "sqlServerDataBaseName": { + "value": "[[field('name')]" + } + } + } + }, + "roleDefinitionIds": [ + "/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3" + ] + } + } + } + }, + "name": "Deploy-Sql-Tde" + }, + { + "properties": { + "Description": "Deploy the security Alert Policies configuration with email admin accounts when it not exist in current configuration", + "DisplayName": "Deploy SQL Database security Alert Policies configuration with email admin accounts", + "Mode": "Indexed", + "Parameters": { + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "SQL" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Sql/servers/databases" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Sql/servers/databases/securityAlertPolicies", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Sql/servers/databases/securityAlertPolicies/state", + "equals": "Enabled" + } + ] + }, + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "location": { + "type": "string" + }, + "sqlServerName": { + "type": "string" + }, + "sqlServerDataBaseName": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "name": "[[concat(parameters('sqlServerName'),'/',parameters('sqlServerDataBaseName'),'/default')]", + "type": "Microsoft.Sql/servers/databases/securityAlertPolicies", + "apiVersion": "2018-06-01-preview", + "properties": { + "state": "Enabled", + "disabledAlerts": [ + "" + ], + "emailAddresses": [ + "admin@contoso.com" + ], + "emailAccountAdmins": true, + "storageEndpoint": null, + "storageAccountAccessKey": "", + "retentionDays": 0 + } + } + ], + "outputs": {} + }, + "parameters": { + "location": { + "value": "[[field('location')]" + }, + "sqlServerName": { + "value": "[[first(split(field('fullname'),'/'))]" + }, + "sqlServerDataBaseName": { + "value": "[[field('name')]" + } + } + } + }, + "roleDefinitionIds": [ + "/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3" + ] + } + } + } + }, + "name": "Deploy-Sql-SecurityAlertPolicies" + }, + { + "properties": { + "Description": "Deploy SQL Database vulnerability Assessments when it not exist in the deployment. To the specific storage account in the parameters", + "DisplayName": "Deploy SQL Database vulnerability Assessments", + "Mode": "Indexed", + "Parameters": { + "vulnerabilityAssessmentsEmail": { + "type": "String", + "metadata": { + "description": "The email address to send alerts", + "displayName": "The email address to send alerts" + } + }, + "vulnerabilityAssessmentsStorageID": { + "type": "String", + "metadata": { + "description": "The storage account to store assessments", + "displayName": "The storage account to store assessments" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "SQL" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Sql/servers/databases" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Sql/servers/databases/vulnerabilityAssessments", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Sql/servers/databases/vulnerabilityAssessments/recurringScans.emails", + "equals": "[[parameters('vulnerabilityAssessmentsEmail')]" + }, + { + "field": "Microsoft.Sql/servers/databases/vulnerabilityAssessments/recurringScans.isEnabled", + "equals": true + } + ] + }, + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "location": { + "type": "string" + }, + "sqlServerName": { + "type": "string" + }, + "sqlServerDataBaseName": { + "type": "string" + }, + "vulnerabilityAssessmentsEmail": { + "type": "string" + }, + "vulnerabilityAssessmentsStorageID": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "name": "[[concat(parameters('sqlServerName'),'/',parameters('sqlServerDataBaseName'),'/default')]", + "type": "Microsoft.Sql/servers/databases/vulnerabilityAssessments", + "apiVersion": "2017-03-01-preview", + "properties": { + "storageContainerPath": "[[concat('https://', last( split(parameters('vulnerabilityAssessmentsStorageID') , '/') ) , '.blob.core.windows.net/vulneraabilitylogs')]", + "storageAccountAccessKey": "[[listkeys(parameters('vulnerabilityAssessmentsStorageID'), providers('Microsoft.Storage', 'storageAccounts').apiVersions[0]).keys[0].value]", + "recurringScans": { + "isEnabled": true, + "emailSubscriptionAdmins": false, + "emails": [ + "[[parameters('vulnerabilityAssessmentsEmail')]" + ] + } + } + } + ], + "outputs": {} + }, + "parameters": { + "location": { + "value": "[[field('location')]" + }, + "sqlServerName": { + "value": "[[first(split(field('fullname'),'/'))]" + }, + "sqlServerDataBaseName": { + "value": "[[field('name')]" + }, + "vulnerabilityAssessmentsEmail": { + "value": "[[parameters('vulnerabilityAssessmentsEmail')]" + }, + "vulnerabilityAssessmentsStorageID": { + "value": "[[parameters('vulnerabilityAssessmentsStorageID')]" + } + } + } + }, + "roleDefinitionIds": [ + "/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3", + "/providers/Microsoft.Authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa" + ] + } + } + } + }, + "name": "Deploy-Sql-vulnerabilityAssessments" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for SQL Databases to stream to a Log Analytics workspace when any SQL Databases which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for SQL Databases to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Sql/servers/databases" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Sql/servers/databases/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "SQLInsights", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "AutomaticTuning", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "DevOpsOperationsAudit", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "QueryStoreRuntimeStatistics", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "QueryStoreWaitStatistics", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "Errors", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "DatabaseWaitStatistics", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "Timeouts", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "Blocks", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "Deadlocks", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "SQLSecurityAuditEvents", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('fullName')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-SQLDBs" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for SQL Elastic Pools to stream to a Log Analytics workspace when any SQL Elastic Pools which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for SQL Elastic Pools to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Sql/servers/elasticPools" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Sql/servers/elasticPools/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('fullName')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-SQLElasticPools" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for SQL Managed Instances to stream to a Log Analytics workspace when any SQL Managed Instances which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for SQL Managed Instances to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Sql/managedInstances" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Sql/managedInstances/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "logs": [ + { + "category": "ResourceUsageStats", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "SQLSecurityAuditEvents", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "DevOpsOperationsAudit", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-SQLMI" + }, + { + "properties": { + "Description": "This policy denies creation of Sql servers with exposed public endpoints", + "DisplayName": "Public network access on Azure SQL Database should be disabled", + "Mode": "Indexed", + "Parameters": { + "effect": { + "type": "String", + "allowedValues": [ + "Audit", + "Deny", + "Disabled" + ], + "defaultValue": "Deny", + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "SQL" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Sql/servers" + }, + { + "field": "Microsoft.Sql/servers/publicNetworkAccess", + "notequals": "Disabled" + } + ] + }, + "then": { + "effect": "[[parameters('effect')]" + } + } + }, + "name": "Deny-PublicEndpoint-Sql" + }, + { + "properties": { + "Description": "This policy denies creation of storage accounts with IP Firewall exposed to all public endpoints", + "DisplayName": "Public network access onStorage accounts should be disabled", + "Mode": "Indexed", + "Parameters": { + "effect": { + "type": "String", + "allowedValues": [ + "Audit", + "Deny", + "Disabled" + ], + "defaultValue": "Deny", + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Storage" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Storage/storageAccounts" + }, + { + "field": "Microsoft.Storage/storageAccounts/networkAcls.defaultAction", + "notequals": "Deny" + } + ] + }, + "then": { + "effect": "[[parameters('effect')]" + } + } + }, + "name": "Deny-PublicEndpoint-Storage" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Stream Analytics to stream to a Log Analytics workspace when any Stream Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Stream Analytics to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.StreamAnalytics/streamingjobs" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.StreamAnalytics/streamingjobs/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "Execution", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "Authoring", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-StreamAnalytics" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Time Series Insights to stream to a Log Analytics workspace when any Time Series Insights which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Time Series Insights to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.TimeSeriesInsights/environments" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.TimeSeriesInsights/environments/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "Ingress", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "Management", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-TimeSeriesInsights" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Traffic Manager to stream to a Log Analytics workspace when any Traffic Manager which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Traffic Manager to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Network/trafficManagerProfiles" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Network/trafficManagerProfiles/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "ProbeHealthStatusEvents", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-TrafficManager" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Virtual Machines to stream to a Log Analytics workspace when any Virtual Machines which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Virtual Machines to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Compute/virtualMachines" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Compute/virtualMachines/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "enabled": false, + "days": 0 + } + } + ], + "logs": [] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-VM" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Virtual Network to stream to a Log Analytics workspace when any Virtual Network which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Virtual Network to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Network/virtualNetworks" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Network/virtualNetworks/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "enabled": false, + "days": 0 + } + } + ], + "logs": [ + { + "category": "VMProtectionAlerts", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-VirtualNetwork" + }, + { + "properties": { + "Description": "Deploys Virtual Network to be used as hub virtual network in desired region in the subscription where this policy is assigned.", + "DisplayName": "Deploy Virtual Network to be used as hub virtual network in desired region", + "Mode": "Indexed", + "Parameters": { + "hubName": { + "type": "String", + "metadata": { + "displayName": "hubName", + "description": "Name of the Hub" + } + }, + "HUB": { + "type": "Object", + "metadata": { + "displayName": "HUB", + "description": "Object describing HUB" + } + }, + "vpngw": { + "type": "Object", + "metadata": { + "displayName": "vpngw", + "description": "Object describing VPN gateway" + }, + "defaultValue": {} + }, + "ergw": { + "type": "Object", + "metadata": { + "displayName": "ergw", + "description": "Object describing ExpressRoute gateway" + }, + "defaultValue": {} + }, + "azfw": { + "type": "Object", + "metadata": { + "displayName": "ergw", + "description": "Object describing ExpressRoute gateway" + }, + "defaultValue": {} + }, + "rgName": { + "type": "String", + "metadata": { + "displayName": "rgName", + "description": "Provide name for resource group." + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Network" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Resources/subscriptions" + } + ] + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Network/virtualNetworks", + "name": "[[parameters('hubName')]", + "deploymentScope": "Subscription", + "existenceScope": "ResourceGroup", + "ResourceGroupName": "[[parameters('rgName')]", + "roleDefinitionIds": [ + "/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7" + ], + "deployment": { + "location": "northeurope", + "properties": { + "mode": "incremental", + "parameters": { + "rgName": { + "value": "[[parameters('rgName')]" + }, + "hubName": { + "value": "[[parameters('hubName')]" + }, + "HUB": { + "value": "[[parameters('HUB')]" + }, + "vpngw": { + "value": "[[parameters('vpngw')]" + }, + "ergw": { + "value": "[[parameters('ergw')]" + }, + "azfw": { + "value": "[[parameters('azfw')]" + } + }, + "template": { + "$schema": "http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json", + "contentVersion": "1.0.0.0", + "parameters": { + "hubName": { + "type": "string", + "metadata": { + "description": "Name of the HUB" + } + }, + "HUB": { + "type": "object", + "metadata": { + "description": "Object describing HUB" + } + }, + "vpngw": { + "type": "object", + "defaultValue": {}, + "metadata": { + "description": "Object describing VPN gateway" + } + }, + "ergw": { + "type": "object", + "defaultValue": {}, + "metadata": { + "description": "Object describing ExpressRoute gateway" + } + }, + "azfw": { + "type": "object", + "defaultValue": {}, + "metadata": { + "description": "Object describing the Azure Firewall" + } + }, + "rgName": { + "type": "String", + "metadata": { + "displayName": "rgName", + "description": "Provide name for resource group." + } + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Resources/resourceGroups", + "apiVersion": "2020-06-01", + "name": "[[parameters('rgName')]", + "location": "[[deployment().location]", + "properties": {} + }, + { + "type": "Microsoft.Resources/deployments", + "apiVersion": "2020-06-01", + "name": "[[concat(parameters('hubName'),'-', parameters('HUB').location)]", + "resourceGroup": "[[parameters('rgName')]", + "dependsOn": [ + "[[resourceId('Microsoft.Resources/resourceGroups/', parameters('rgName'))]" + ], + "properties": { + "mode": "Incremental", + "template": { + "$schema": "https: //schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": {}, + "variables": {}, + "resources": [ + { + "name": "[[parameters('hubName')]", + "type": "Microsoft.Network/virtualNetworks", + "apiVersion": "2020-04-01", + "location": "[[parameters('HUB').location]", + "properties": { + "addressSpace": { + "addressPrefixes": [ + "[[parameters('HUB').addressPrefix]" + ] + }, + "subnets": [ + { + "name": "Infrastructure", + "properties": { + "addressPrefix": "[[if(not(empty(parameters('HUB').subnets.infra)),parameters('HUB').subnets.infra, json('null'))]" + } + }, + { + "name": "AzureFirewallSubnet", + "properties": { + "addressPrefix": "[[if(not(empty(parameters('HUB').subnets.azfw)),parameters('HUB').subnets.azfw, json('null'))]" + } + }, + { + "name": "GatewaySubnet", + "properties": { + "addressPrefix": "[[if(not(empty(parameters('HUB').subnets.gw)),parameters('HUB').subnets.gw, json('null'))]" + } + } + ] + } + } + ] + } + } + }, + { + "type": "Microsoft.Resources/deployments", + "apiVersion": "2020-06-01", + "condition": "[[greater(length(parameters('vpngw')),0)]", + "resourceGroup": "[[parameters('rgName')]", + "dependsOn": [ + "[[concat(parameters('hubName'),'-', parameters('HUB').location)]" + ], + "name": "[[concat(parameters('hubName'),'-vpngw')]", + "properties": { + "mode": "Incremental", + "template": { + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": {}, + "variables": {}, + "resources": [ + { + "apiVersion": "2020-05-01", + "type": "Microsoft.Network/publicIpAddresses", + "location": "[[parameters('HUB').location]", + "name": "[[concat(parameters('vpngw').name,'-pip')]", + "properties": { + "publicIPAllocationMethod": "Dynamic" + }, + "tags": {} + }, + { + "apiVersion": "2020-05-01", + "name": "[[parameters('vpngw').name]", + "type": "Microsoft.Network/virtualNetworkGateways", + "location": "[[parameters('HUB').location]", + "dependsOn": [ + "[[concat('Microsoft.Network/publicIPAddresses/', parameters('vpngw').name,'-pip')]" + ], + "tags": {}, + "properties": { + "gatewayType": "Vpn", + "vpnType": "[[parameters('vpngw').vpnType]", + "ipConfigurations": [ + { + "name": "default", + "properties": { + "privateIPAllocationMethod": "Dynamic", + "subnet": { + "id": "[[concat(subscription().id,'/resourceGroups/',parameters('rgName'), '/providers','/Microsoft.Network/virtualNetworks/', parameters('hubName'),'/subnets/GatewaySubnet')]" + }, + "publicIpAddress": { + "id": "[[concat(subscription().id,'/resourceGroups/',parameters('rgName'), '/providers','/Microsoft.Network/publicIPAddresses/', parameters('vpngw').name,'-pip')]" + } + } + } + ], + "sku": { + "name": "[[parameters('vpngw').sku]", + "tier": "[[parameters('vpngw').sku]" + } + } + } + ] + } + } + }, + { + "type": "Microsoft.Resources/deployments", + "apiVersion": "2020-06-01", + "condition": "[[greater(length(parameters('ergw')),0)]", + "resourceGroup": "[[parameters('rgName')]", + "dependsOn": [ + "[[concat(parameters('hubName'),'-', parameters('HUB').location)]" + ], + "name": "[[concat(parameters('hubName'),'-ergw')]", + "properties": { + "mode": "Incremental", + "template": { + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": {}, + "variables": {}, + "resources": [ + { + "apiVersion": "2020-05-01", + "type": "Microsoft.Network/publicIpAddresses", + "location": "[[parameters('HUB').location]", + "name": "[[concat(parameters('ergw').name,'-pip')]", + "properties": { + "publicIPAllocationMethod": "Dynamic" + }, + "tags": {} + }, + { + "apiVersion": "2020-05-01", + "name": "[[parameters('ergw').name]", + "type": "Microsoft.Network/virtualNetworkGateways", + "location": "[[parameters('HUB').location]", + "dependsOn": [ + "[[concat('Microsoft.Network/publicIPAddresses/', parameters('ergw').name,'-pip')]" + ], + "tags": {}, + "properties": { + "gatewayType": "ExpressRoute", + "ipConfigurations": [ + { + "name": "default", + "properties": { + "privateIPAllocationMethod": "Dynamic", + "subnet": { + "id": "[[concat(subscription().id,'/resourceGroups/',parameters('rgName'), '/providers','/Microsoft.Network/virtualNetworks/', parameters('hubName'),'/subnets/GatewaySubnet')]" + }, + "publicIpAddress": { + "id": "[[concat(subscription().id,'/resourceGroups/',parameters('rgName'), '/providers','/Microsoft.Network/publicIPAddresses/', parameters('ergw').name,'-pip')]" + } + } + } + ], + "sku": { + "name": "[[parameters('ergw').sku]", + "tier": "[[parameters('ergw').sku]" + } + } + } + ] + } + } + }, + { + "type": "Microsoft.Resources/deployments", + "apiVersion": "2020-06-01", + "condition": "[[greater(length(parameters('azfw')),0)]", + "name": "[[concat(parameters('hubName'),'-azfw')]", + "resourceGroup": "[[parameters('rgName')]", + "dependsOn": [ + "[[concat(parameters('hubName'),'-', parameters('HUB').location)]" + ], + "properties": { + "mode": "Incremental", + "template": { + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": {}, + "variables": {}, + "resources": [ + { + "apiVersion": "2020-05-01", + "type": "Microsoft.Network/publicIpAddresses", + "name": "[[concat(parameters('azfw').name,'-pip')]", + "location": "[[parameters('azfw').location]", + "sku": { + "name": "Standard" + }, + "zones": "[[if(contains(parameters('azfw'),'pipZones'),parameters('azfw').pipZones,json('null'))]", + "properties": { + "publicIPAllocationMethod": "Static" + }, + "tags": {} + }, + { + "apiVersion": "2020-05-01", + "type": "Microsoft.Network/azureFirewalls", + "name": "[[parameters('azfw').name]", + "location": "[[parameters('azfw').location]", + "zones": "[[if(contains(parameters('azfw'),'fwZones'),parameters('azfw').fwZones,json('null'))]", + "dependsOn": [ + "[[concat(parameters('azfw').name,'-pip')]" + ], + "properties": { + "threatIntelMode": "[[parameters('azfw').threatIntelMode]", + "additionalProperties": "[[if(contains(parameters('azfw'),'additionalProperties'),parameters('azfw').additionalProperties,json('null'))]", + "sku": "[[if(contains(parameters('azfw'),'sku'),parameters('azfw').sku,json('null'))]", + "ipConfigurations": [ + { + "name": "[[concat(parameters('azfw').name,'-pip')]", + "properties": { + "subnet": { + "id": "[[concat(subscription().id,'/resourceGroups/',parameters('rgName'), '/providers','/Microsoft.Network/virtualNetworks/', parameters('hubName'),'/subnets/AzureFirewallSubnet')]" + }, + "publicIPAddress": { + "id": "[[concat(subscription().id,'/resourceGroups/',parameters('rgName'), '/providers','/Microsoft.Network/publicIPAddresses/', parameters('azfw').name,'-pip')]" + } + } + } + ], + "firewallPolicy": "[[if(contains(parameters('azfw'),'firewallPolicy'),parameters('azfw').firewallPolicy,json('null'))]" + }, + "tags": {} + } + ] + } + } + } + ] + } + } + } + } + } + } + }, + "name": "Deploy-HUB" + }, + { + "properties": { + "Description": "Deploy spoke network with configuration to hub network based on ipam configuration object", + "DisplayName": "Deploy spoke network with configuration to hub network based on ipam configuration object", + "Mode": "Indexed", + "Parameters": { + "ipam": { + "type": "Array", + "metadata": { + "displayName": "ipam", + "description": null + }, + "defaultValue": [] + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Network" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Resources/subscriptions" + } + ] + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Resources/resourceGroups", + "deploymentScope": "Subscription", + "existenceScope": "Subscription", + "roleDefinitionIds": [ + "/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7" + ], + "existenceCondition": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Resources/subscriptions/resourceGroups" + }, + { + "field": "name", + "like": "[[concat(subscription().displayName, '-network')]" + } + ] + }, + "deployment": { + "location": "northeurope", + "properties": { + "mode": "incremental", + "parameters": { + "ipam": { + "value": "[[parameters('ipam')]", + "defaultValue": [] + } + }, + "template": { + "$schema": "http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json", + "contentVersion": "1.0.0.0", + "parameters": { + "ipam": { + "defaultValue": [ + { + "name": "bu1-weu-msx3-vNet1", + "location": "westeurope", + "virtualNetworks": { + "properties": { + "addressSpace": { + "addressPrefixes": [ + "10.51.217.0/24" + ] + } + } + }, + "networkSecurityGroups": { + "properties": { + "securityRules": [] + } + }, + "routeTables": { + "properties": { + "routes": [] + } + }, + "hubVirtualNetworkConnection": { + "vWanVhubResourceId": "/subscriptions/99c2838f-a548-4884-a6e2-38c1f8fb4c0b/resourceGroups/contoso-global-vwan/providers/Microsoft.Network/virtualHubs/contoso-vhub-weu", + "properties": { + "allowHubToRemoteVnetTransit": true, + "allowRemoteVnetToUseHubVnetGateways": false, + "enableInternetSecurity": true + } + } + } + ], + "type": "Array" + } + }, + "variables": { + "vNetRgName": "[[concat(subscription().displayName, '-network')]", + "vNetName": "[[concat(subscription().displayName, '-vNet')]", + "vNetSubId": "[[subscription().subscriptionId]" + }, + "resources": [ + { + "type": "Microsoft.Resources/deployments", + "apiVersion": "2020-06-01", + "name": "[[concat('es-ipam-',subscription().displayName,'-RG-',copyIndex())]", + "location": "[[parameters('ipam')[copyIndex()].location]", + "dependsOn": [], + "properties": { + "mode": "Incremental", + "template": { + "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": {}, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Resources/resourceGroups", + "apiVersion": "2020-06-01", + "name": "[[variables('vNetRgName')]", + "location": "[[parameters('ipam')[copyIndex()].location]", + "properties": {} + }, + { + "type": "Microsoft.Resources/resourceGroups", + "apiVersion": "2020-06-01", + "name": "NetworkWatcherRG", + "location": "[[parameters('ipam')[copyIndex()].location]", + "properties": {} + } + ], + "outputs": {} + } + }, + "copy": { + "name": "ipam-rg-loop", + "count": "[[length(parameters('ipam'))]" + }, + "condition": "[[if(and(not(empty(parameters('ipam'))), equals(toLower(parameters('ipam')[copyIndex()].name),toLower(variables('vNetName')))),bool('true'),bool('false'))]" + }, + { + "type": "Microsoft.Resources/deployments", + "apiVersion": "2020-06-01", + "name": "[[concat('es-ipam-',subscription().displayName,'-nsg-udr-vnet-hub-vwan-peering-',copyIndex())]", + "dependsOn": [ + "[[concat('es-ipam-',subscription().displayName,'-RG-',copyIndex())]" + ], + "properties": { + "mode": "Incremental", + "template": { + "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": {}, + "variables": {}, + "resources": [ + { + "condition": "[[contains(parameters('ipam')[copyIndex()],'networkSecurityGroups')]", + "apiVersion": "2020-05-01", + "type": "Microsoft.Network/networkSecurityGroups", + "name": "[[concat(subscription().displayName, '-nsg')]", + "location": "[[parameters('ipam')[copyIndex()].location]", + "properties": "[[if(contains(parameters('ipam')[copyIndex()],'networkSecurityGroups'),parameters('ipam')[copyIndex()].networkSecurityGroups.properties,json('null'))]" + }, + { + "condition": "[[contains(parameters('ipam')[copyIndex()],'routeTables')]", + "apiVersion": "2020-05-01", + "type": "Microsoft.Network/routeTables", + "name": "[[concat(subscription().displayName, '-udr')]", + "location": "[[parameters('ipam')[copyIndex()].location]", + "properties": "[[if(contains(parameters('ipam')[copyIndex()],'routeTables'),parameters('ipam')[copyIndex()].routeTables.properties,json('null'))]" + }, + { + "condition": "[[contains(parameters('ipam')[copyIndex()],'virtualNetworks')]", + "type": "Microsoft.Network/virtualNetworks", + "apiVersion": "2020-05-01", + "name": "[[concat(subscription().displayName, '-vnet')]", + "location": "[[parameters('ipam')[copyIndex()].location]", + "dependsOn": [ + "[[concat(subscription().displayName, '-nsg')]", + "[[concat(subscription().displayName, '-udr')]" + ], + "properties": "[[if(contains(parameters('ipam')[copyIndex()],'virtualNetworks'),parameters('ipam')[copyIndex()].virtualNetworks.properties,json('null'))]" + }, + { + "condition": "[[contains(parameters('ipam')[copyIndex()],'virtualNetworkPeerings')]", + "type": "Microsoft.Network/virtualNetworks/virtualNetworkPeerings", + "apiVersion": "2020-05-01", + "name": "[[concat(variables('vNetName'), '/peerToHub')]", + "dependsOn": [ + "[[concat(subscription().displayName, '-vnet')]" + ], + "properties": "[[if(contains(parameters('ipam')[copyIndex()],'virtualNetworkPeerings'),parameters('ipam')[copyIndex()].virtualNetworkPeerings.properties,json('null'))]" + }, + { + "condition": "[[and(contains(parameters('ipam')[copyIndex()],'virtualNetworks'),contains(parameters('ipam')[copyIndex()],'hubVirtualNetworkConnection'),contains(parameters('ipam')[copyIndex()].hubVirtualNetworkConnection,'vWanVhubResourceId'))]", + "type": "Microsoft.Resources/deployments", + "apiVersion": "2020-06-01", + "name": "[[concat('es-ipam-vWan-',subscription().displayName,'-peering-',copyIndex())]", + "subscriptionId": "[[if(and(contains(parameters('ipam')[copyIndex()],'hubVirtualNetworkConnection'),contains(parameters('ipam')[copyIndex()].hubVirtualNetworkConnection,'vWanVhubResourceId')),split(parameters('ipam')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,'/')[2],json('null'))]", + "resourceGroup": "[[if(and(contains(parameters('ipam')[copyIndex()],'hubVirtualNetworkConnection'),contains(parameters('ipam')[copyIndex()].hubVirtualNetworkConnection,'vWanVhubResourceId')),split(parameters('ipam')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,'/')[4],json('null'))]", + "dependsOn": [ + "[[concat(subscription().displayName, '-vnet')]" + ], + "properties": { + "mode": "Incremental", + "expressionEvaluationOptions": { + "scope": "inner" + }, + "template": { + "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "remoteVirtualNetwork": { + "type": "string" + }, + "vWanVhubName": { + "Type": "string", + "defaultValue": "" + }, + "allowHubToRemoteVnetTransit": { + "Type": "bool", + "defaultValue": true + }, + "allowRemoteVnetToUseHubVnetGateways": { + "Type": "bool", + "defaultValue": false + }, + "enableInternetSecurity": { + "Type": "bool", + "defaultValue": true + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Network/virtualHubs/hubVirtualNetworkConnections", + "apiVersion": "2020-05-01", + "name": "[[[concat(parameters('vWanVhubName'),'/',last(split(parameters('remoteVirtualNetwork'),'/')))]", + "properties": { + "remoteVirtualNetwork": { + "id": "[[[parameters('remoteVirtualNetwork')]" + }, + "allowHubToRemoteVnetTransit": "[[[parameters('allowHubToRemoteVnetTransit')]", + "allowRemoteVnetToUseHubVnetGateways": "[[[parameters('allowRemoteVnetToUseHubVnetGateways')]", + "enableInternetSecurity": "[[[parameters('enableInternetSecurity')]" + } + } + ], + "outputs": {} + }, + "parameters": { + "remoteVirtualNetwork": { + "value": "[[concat(subscription().id,'/resourceGroups/',variables('vNetRgName'), '/providers/','Microsoft.Network/virtualNetworks/', concat(subscription().displayName, '-vnet'))]" + }, + "vWanVhubName": { + "value": "[[if(and(contains(parameters('ipam')[copyIndex()],'hubVirtualNetworkConnection'),contains(parameters('ipam')[copyIndex()].hubVirtualNetworkConnection,'vWanVhubResourceId')),split(parameters('ipam')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,'/')[8],json('null'))]" + }, + "allowHubToRemoteVnetTransit": { + "value": "[[if(and(contains(parameters('ipam')[copyIndex()],'hubVirtualNetworkConnection'),contains(parameters('ipam')[copyIndex()].hubVirtualNetworkConnection,'vWanVhubResourceId')),parameters('ipam')[copyIndex()].hubVirtualNetworkConnection.properties.allowHubToRemoteVnetTransit,json('null'))]" + }, + "allowRemoteVnetToUseHubVnetGateways": { + "value": "[[if(and(contains(parameters('ipam')[copyIndex()],'hubVirtualNetworkConnection'),contains(parameters('ipam')[copyIndex()].hubVirtualNetworkConnection,'vWanVhubResourceId')),parameters('ipam')[copyIndex()].hubVirtualNetworkConnection.properties.allowRemoteVnetToUseHubVnetGateways,json('null'))]" + }, + "enableInternetSecurity": { + "value": "[[if(and(contains(parameters('ipam')[copyIndex()],'hubVirtualNetworkConnection'),contains(parameters('ipam')[copyIndex()].hubVirtualNetworkConnection,'vWanVhubResourceId')),parameters('ipam')[copyIndex()].hubVirtualNetworkConnection.properties.enableInternetSecurity,json('null'))]" + } + } + } + }, + { + "condition": "[[and(contains(parameters('ipam')[copyIndex()],'virtualNetworks'),contains(parameters('ipam')[copyIndex()],'virtualNetworkPeerings'),contains(parameters('ipam')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,'id'))]", + "type": "Microsoft.Resources/deployments", + "apiVersion": "2020-06-01", + "name": "[[concat('es-ipam-hub-',subscription().displayName,'-peering-',copyIndex())]", + "subscriptionId": "[[if(and(contains(parameters('ipam')[copyIndex()],'virtualNetworkPeerings'),contains(parameters('ipam')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,'id')),split(parameters('ipam')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,'/')[2],json('null'))]", + "resourceGroup": "[[if(and(contains(parameters('ipam')[copyIndex()],'virtualNetworkPeerings'),contains(parameters('ipam')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,'id')),split(parameters('ipam')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,'/')[4],json('null'))]", + "dependsOn": [ + "[[concat(subscription().displayName, '-vnet')]" + ], + "properties": { + "mode": "Incremental", + "expressionEvaluationOptions": { + "scope": "inner" + }, + "template": { + "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "remoteVirtualNetwork": { + "Type": "string", + "defaultValue": false + }, + "hubName": { + "Type": "string", + "defaultValue": false + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Network/virtualNetworks/virtualNetworkPeerings", + "name": "[[[concat(parameters('hubName'),'/',last(split(parameters('remoteVirtualNetwork'),'/')))]", + "apiVersion": "2020-05-01", + "properties": { + "allowVirtualNetworkAccess": true, + "allowForwardedTraffic": true, + "allowGatewayTransit": true, + "useRemoteGateways": false, + "remoteVirtualNetwork": { + "id": "[[[parameters('remoteVirtualNetwork')]" + } + } + } + ], + "outputs": {} + }, + "parameters": { + "remoteVirtualNetwork": { + "value": "[[concat(subscription().id,'/resourceGroups/',variables('vNetRgName'), '/providers/','Microsoft.Network/virtualNetworks/', concat(subscription().displayName, '-vnet'))]" + }, + "hubName": { + "value": "[[if(and(contains(parameters('ipam')[copyIndex()],'virtualNetworkPeerings'),contains(parameters('ipam')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,'id')),split(parameters('ipam')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,'/')[8],json('null'))]" + } + } + } + } + ], + "outputs": {} + } + }, + "resourceGroup": "[[variables('vNetRgName')]", + "copy": { + "name": "ipam-loop", + "count": "[[length(parameters('ipam'))]" + }, + "condition": "[[if(and(not(empty(parameters('ipam'))), equals(toLower(parameters('ipam')[copyIndex()].name),toLower(variables('vNetName')))),bool('true'),bool('false'))]" + } + ], + "outputs": { + "ipam": { + "condition": "[[bool('true')]", + "type": "Int", + "value": "[[length(parameters('ipam'))]" + } + } + } + } + } + } + } + } + }, + "name": "Deploy-vNet" + }, + { + "properties": { + "Description": "Deploy the Virtual WAN in the specific region.", + "DisplayName": "Deploy the Virtual WAN in the specific region", + "Mode": "Indexed", + "Parameters": { + "vwanname": { + "type": "String", + "metadata": { + "displayName": "vwanname", + "description": "Name of the Virtual WAN" + } + }, + "vwanRegion": { + "type": "String", + "metadata": { + "displayName": "vwanRegion", + "description": "Select Azure region for Virtual WAN", + "strongType": "location" + } + }, + "rgName": { + "type": "String", + "metadata": { + "displayName": "rgName", + "description": "Provide name for resource group." + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Network" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Resources/subscriptions" + } + ] + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Network/virtualWans", + "deploymentScope": "Subscription", + "existenceScope": "ResourceGroup", + "name": "[[parameters('vwanname')]", + "resourceGroupName": "[[parameters('rgName')]", + "roleDefinitionIds": [ + "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c" + ], + "deployment": { + "location": "northeurope", + "properties": { + "mode": "incremental", + "parameters": { + "rgName": { + "value": "[[parameters('rgName')]" + }, + "vwanname": { + "value": "[[parameters('vwanname')]" + }, + "vwanRegion": { + "value": "[[parameters('vwanRegion')]" + } + }, + "template": { + "$schema": "http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json", + "contentVersion": "1.0.0.0", + "parameters": { + "rgName": { + "type": "string" + }, + "vwanname": { + "type": "string" + }, + "vwanRegion": { + "type": "string" + } + }, + "variables": { + "vwansku": "Standard" + }, + "resources": [ + { + "type": "Microsoft.Resources/resourceGroups", + "apiVersion": "2018-05-01", + "name": "[[parameters('rgName')]", + "location": "[[deployment().location]", + "properties": {} + }, + { + "type": "Microsoft.Resources/deployments", + "apiVersion": "2018-05-01", + "name": "vwan", + "resourceGroup": "[[parameters('rgName')]", + "dependsOn": [ + "[[resourceId('Microsoft.Resources/resourceGroups/', parameters('rgName'))]" + ], + "properties": { + "mode": "Incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json", + "contentVersion": "1.0.0.0", + "parameters": {}, + "resources": [ + { + "type": "Microsoft.Network/virtualWans", + "apiVersion": "2020-05-01", + "location": "[[parameters('vwanRegion')]", + "name": "[[parameters('vwanname')]", + "properties": { + "virtualHubs": [], + "vpnSites": [], + "type": "[[variables('vwansku')]" + } + } + ], + "outputs": {} + } + } + } + ], + "outputs": {} + } + } + } + } + } + } + }, + "name": "Deploy-vWAN" + }, + { + "properties": { + "Description": "Deploy Virtual Hub network with Virtual Wan and Gateway and Firewall configured in the desired region. ", + "DisplayName": "Deploy Virtual Hub network with Virtual Wan and Gateway and Firewall configured.", + "Mode": "Indexed", + "Parameters": { + "vwanname": { + "type": "String", + "metadata": { + "displayName": "vwanname", + "description": "Name of the Virtual WAN" + } + }, + "vHubName": { + "type": "String", + "metadata": { + "displayName": "vHubName", + "description": "Name of the vHUB" + }, + "defaultValue": "" + }, + "vHUB": { + "type": "Object", + "metadata": { + "displayName": "vHUB", + "description": "Object describing Virtual WAN vHUB" + } + }, + "vpngw": { + "type": "Object", + "metadata": { + "displayName": "vpngw", + "description": "Object describing VPN gateway" + }, + "defaultValue": {} + }, + "ergw": { + "type": "Object", + "metadata": { + "displayName": "ergw", + "description": "Object describing ExpressRoute gateway" + }, + "defaultValue": {} + }, + "azfw": { + "type": "Object", + "metadata": { + "displayName": "azfw", + "description": "Object describing the Azure Firewall in vHUB" + }, + "defaultValue": {} + }, + "rgName": { + "type": "String", + "metadata": { + "displayName": "rgName", + "description": "Provide name for resource group." + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Network" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Resources/subscriptions" + } + ] + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Network/virtualHubs", + "name": "[[parameters('vHubName')]", + "deploymentScope": "Subscription", + "existenceScope": "ResourceGroup", + "ResourceGroupName": "[[parameters('rgName')]", + "roleDefinitionIds": [ + "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c" + ], + "deployment": { + "location": "northeurope", + "properties": { + "mode": "incremental", + "parameters": { + "rgName": { + "value": "[[parameters('rgName')]" + }, + "vwanname": { + "value": "[[parameters('vwanname')]" + }, + "vHUB": { + "value": "[[parameters('vHUB')]" + }, + "vpngw": { + "value": "[[parameters('vpngw')]" + }, + "ergw": { + "value": "[[parameters('ergw')]" + }, + "azfw": { + "value": "[[parameters('azfw')]" + }, + "vHUBName": { + "value": "[[parameters('vHUBName')]" + } + }, + "template": { + "$schema": "http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json", + "contentVersion": "1.0.0.0", + "parameters": { + "vwanname": { + "type": "string", + "metadata": { + "description": "Name of the Virtual WAN" + } + }, + "vHUB": { + "type": "object", + "metadata": { + "description": "Object describing Virtual WAN vHUB" + } + }, + "vpngw": { + "type": "object", + "defaultValue": {}, + "metadata": { + "description": "Object describing VPN gateway" + } + }, + "ergw": { + "type": "object", + "defaultValue": {}, + "metadata": { + "description": "Object describing ExpressRoute gateway" + } + }, + "azfw": { + "type": "object", + "defaultValue": {}, + "metadata": { + "description": "Object describing the Azure Firewall in vHUB" + } + }, + "rgName": { + "type": "String", + "metadata": { + "displayName": "rgName", + "description": "Provide name for resource group." + } + }, + "vHUBName": { + "type": "String", + "metadata": { + "displayName": "vHUBName", + "description": "Name of the vHUB" + } + } + }, + "variables": { + "vhubsku": "Standard", + "vwanresourceid": "[[concat(subscription().id,'/resourceGroups/',parameters('rgName'),'/providers/Microsoft.Network/virtualWans/',parameters('vwanname'))]", + "vwanhub": "[[concat(subscription().id,'/resourceGroups/',parameters('rgName'),'/providers/Microsoft.Network/virtualHubs/',parameters('vHUBName'))]" + }, + "resources": [ + { + "type": "Microsoft.Resources/resourceGroups", + "apiVersion": "2018-05-01", + "name": "[[parameters('rgName')]", + "location": "[[deployment().location]", + "properties": {} + }, + { + "type": "Microsoft.Resources/deployments", + "apiVersion": "2018-05-01", + "name": "[[concat('vHUBdeploy-',parameters('vHUB').location)]", + "resourceGroup": "[[parameters('rgName')]", + "dependsOn": [ + "[[resourceId('Microsoft.Resources/resourceGroups/', parameters('rgName'))]" + ], + "properties": { + "mode": "Incremental", + "template": { + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": {}, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Network/virtualHubs", + "apiVersion": "2020-05-01", + "location": "[[parameters('vHUB').location]", + "name": "[[parameters('vHUBname')]", + "properties": { + "virtualWan": { + "id": "[[variables('vwanresourceid')]" + }, + "addressPrefix": "[[parameters('vHUB').addressPrefix]", + "sku": "[[variables('vhubsku')]" + } + } + ] + } + } + }, + { + "type": "Microsoft.Resources/deployments", + "apiVersion": "2018-05-01", + "condition": "[[greater(length(parameters('vpngw')),0)]", + "resourceGroup": "[[parameters('rgName')]", + "dependsOn": [ + "[[concat('vHUBdeploy-',parameters('vHUB').location)]" + ], + "name": "[[concat(parameters('vHUBName'),'-vpngw')]", + "properties": { + "mode": "Incremental", + "template": { + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": {}, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Network/vpnGateways", + "apiVersion": "2020-05-01", + "location": "[[parameters('vHUB').location]", + "name": "[[parameters('vpngw').name]", + "properties": { + "virtualHub": { + "id": "[[variables('vwanhub')]" + }, + "bgpSettings": "[[parameters('vpngw').bgpSettings]", + "vpnGatewayScaleUnit": "[[parameters('vpngw').vpnGatewayScaleUnit]" + } + } + ] + } + } + }, + { + "type": "Microsoft.Resources/deployments", + "apiVersion": "2018-05-01", + "condition": "[[greater(length(parameters('ergw')),0)]", + "resourceGroup": "[[parameters('rgName')]", + "dependsOn": [ + "[[concat('vHUBdeploy-',parameters('vHUB').location)]" + ], + "name": "[[concat(parameters('vHUBName'),'-ergw')]", + "properties": { + "mode": "Incremental", + "template": { + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": {}, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Network/expressRouteGateways", + "apiVersion": "2020-05-01", + "location": "[[parameters('vHUB').location]", + "name": "[[parameters('ergw').name]", + "properties": { + "virtualHub": { + "id": "[[variables('vwanhub')]" + }, + "autoScaleConfiguration": "[[parameters('ergw').autoScaleConfiguration]" + } + } + ] + } + } + } + ] + } + } + } + } + } + } + }, + "name": "Deploy-vHUB" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for Virtual Machine Scale Sets to stream to a Log Analytics workspace when any Virtual Machine Scale Sets which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled", + "DisplayName": "Deploy Diagnostic Settings for Virtual Machine Scale Sets to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Compute/virtualMachineScaleSets" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Compute/virtualMachineScaleSets/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "enabled": false, + "days": 0 + } + } + ], + "logs": [] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-VMSS" + }, + { + "properties": { + "Description": "Deploys the diagnostic settings for VPN Gateway to stream to a Log Analytics workspace when any VPN Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.", + "DisplayName": "Deploy Diagnostic Settings for VPN Gateway to Log Analytics workspace", + "Mode": "Indexed", + "Parameters": { + "logAnalytics": { + "type": "String", + "metadata": { + "displayName": "Log Analytics workspace", + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "strongType": "omsWorkspace" + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "metricsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable metrics", + "description": "Whether to enable metrics stream to the Log Analytics workspace - True or False" + } + }, + "logsEnabled": { + "type": "string", + "defaultValue": "True", + "allowedValues": [ + "True", + "False" + ], + "metadata": { + "displayName": "Enable logs", + "description": "Whether to enable logs stream to the Log Analytics workspace - True or False" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyRule": { + "if": { + "field": "type", + "equals": "Microsoft.Network/virtualNetworkGateways" + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "name": "setByPolicy", + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", + "equals": "true" + }, + { + "field": "Microsoft.Insights/diagnosticSettings/workspaceId", + "equals": "[[parameters('logAnalytics')]" + } + ] + }, + "roleDefinitionIds": [ + "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", + "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" + ], + "deployment": { + "properties": { + "mode": "incremental", + "template": { + "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceName": { + "type": "string" + }, + "logAnalytics": { + "type": "string" + }, + "location": { + "type": "string" + }, + "profileName": { + "type": "string" + }, + "metricsEnabled": { + "type": "string" + }, + "logsEnabled": { + "type": "string" + } + }, + "variables": {}, + "resources": [ + { + "type": "Microsoft.Network/virtualNetworkGateways/providers/diagnosticSettings", + "apiVersion": "2017-05-01-preview", + "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", + "location": "[[parameters('location')]", + "dependsOn": [], + "properties": { + "workspaceId": "[[parameters('logAnalytics')]", + "metrics": [ + { + "category": "AllMetrics", + "enabled": "[[parameters('metricsEnabled')]", + "retentionPolicy": { + "days": 0, + "enabled": false + }, + "timeGrain": null + } + ], + "logs": [ + { + "category": "GatewayDiagnosticLog", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "IKEDiagnosticLog", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "P2SDiagnosticLog", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "RouteDiagnosticLog", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "RouteDiagnosticLog", + "enabled": "[[parameters('logsEnabled')]" + }, + { + "category": "TunnelDiagnosticLog", + "enabled": "[[parameters('logsEnabled')]" + } + ] + } + } + ], + "outputs": {} + }, + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "location": { + "value": "[[field('location')]" + }, + "resourceName": { + "value": "[[field('name')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + }, + "metricsEnabled": { + "value": "[[parameters('metricsEnabled')]" + }, + "logsEnabled": { + "value": "[[parameters('logsEnabled')]" + } + } + } + } + } + } + } + }, + "name": "Deploy-Diagnostics-VNetGW" + }, + { + "properties": { + "Description": "Deploy Windows Domain Join Extension with keyvault configuration when the extension does not exist on a given windows Virtual Machine", + "DisplayName": "Deploy Windows Domain Join Extension with keyvault configuration", + "Mode": "Indexed", + "Parameters": { + "domainUsername": { + "type": "String", + "metadata": { + "displayName": "domainUsername", + "description": null + } + }, + "domainPassword": { + "type": "String", + "metadata": { + "displayName": "domainPassword", + "description": null + } + }, + "domainFQDN": { + "type": "String", + "metadata": { + "displayName": "domainFQDN", + "description": null + } + }, + "domainOUPath": { + "type": "String", + "metadata": { + "displayName": "domainOUPath", + "description": null + } + }, + "keyVaultResourceId": { + "type": "String", + "metadata": { + "displayName": "keyVaultResourceId", + "description": null + } + }, + "effect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Effect", + "description": "Enable or disable the execution of the policy" + } + } + }, + "metadata": { + "version": "1.0.0", + "category": "Guest Configuration" + }, + "PolicyRule": { + "if": { + "allOf": [ + { + "field": "type", + "equals": "Microsoft.Compute/virtualMachines" + }, + { + "field": "Microsoft.Compute/imagePublisher", + "equals": "MicrosoftWindowsServer" + }, + { + "field": "Microsoft.Compute/imageOffer", + "equals": "WindowsServer" + }, + { + "field": "Microsoft.Compute/imageSKU", + "in": [ + "2008-R2-SP1", + "2008-R2-SP1-smalldisk", + "2008-R2-SP1-zhcn", + "2012-Datacenter", + "2012-datacenter-gensecond", + "2012-Datacenter-smalldisk", + "2012-datacenter-smalldisk-g2", + "2012-Datacenter-zhcn", + "2012-datacenter-zhcn-g2", + "2012-R2-Datacenter", + "2012-r2-datacenter-gensecond", + "2012-R2-Datacenter-smalldisk", + "2012-r2-datacenter-smalldisk-g2", + "2012-R2-Datacenter-zhcn", + "2012-r2-datacenter-zhcn-g2", + "2016-Datacenter", + "2016-datacenter-gensecond", + "2016-datacenter-gs", + "2016-Datacenter-Server-Core", + "2016-datacenter-server-core-g2", + "2016-Datacenter-Server-Core-smalldisk", + "2016-datacenter-server-core-smalldisk-g2", + "2016-Datacenter-smalldisk", + "2016-datacenter-smalldisk-g2", + "2016-Datacenter-with-Containers", + "2016-datacenter-with-containers-g2", + "2016-Datacenter-with-RDSH", + "2016-Datacenter-zhcn", + "2016-datacenter-zhcn-g2", + "2019-Datacenter", + "2019-Datacenter-Core", + "2019-datacenter-core-g2", + "2019-Datacenter-Core-smalldisk", + "2019-datacenter-core-smalldisk-g2", + "2019-Datacenter-Core-with-Containers", + "2019-datacenter-core-with-containers-g2", + "2019-Datacenter-Core-with-Containers-smalldisk", + "2019-datacenter-core-with-containers-smalldisk-g2", + "2019-datacenter-gensecond", + "2019-datacenter-gs", + "2019-Datacenter-smalldisk", + "2019-datacenter-smalldisk-g2", + "2019-Datacenter-with-Containers", + "2019-datacenter-with-containers-g2", + "2019-Datacenter-with-Containers-smalldisk", + "2019-datacenter-with-containers-smalldisk-g2", + "2019-Datacenter-zhcn", + "2019-datacenter-zhcn-g2", + "Datacenter-Core-1803-with-Containers-smalldisk", + "datacenter-core-1803-with-containers-smalldisk-g2", + "Datacenter-Core-1809-with-Containers-smalldisk", + "datacenter-core-1809-with-containers-smalldisk-g2", + "Datacenter-Core-1903-with-Containers-smalldisk", + "datacenter-core-1903-with-containers-smalldisk-g2", + "datacenter-core-1909-with-containers-smalldisk", + "datacenter-core-1909-with-containers-smalldisk-g1", + "datacenter-core-1909-with-containers-smalldisk-g2" + ] + } + ] + }, + "then": { + "effect": "[[parameters('effect')]", + "details": { + "type": "Microsoft.Compute/virtualMachines/extensions", + "roleDefinitionIds": [ + "/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c" + ], + "existenceCondition": { + "allOf": [ + { + "field": "Microsoft.Compute/virtualMachines/extensions/type", + "equals": "JsonADDomainExtension" + }, + { + "field": "Microsoft.Compute/virtualMachines/extensions/publisher", + "equals": "Microsoft.Compute" + } + ] + }, + "deployment": { + "properties": { + "mode": "incremental", + "parameters": { + "vmName": { + "value": "[[field('name')]" + }, + "location": { + "value": "[[field('location')]" + }, + "domainUsername": { + "reference": { + "keyVault": { + "id": "[[parameters('keyVaultResourceId')]" + }, + "secretName": "[[parameters('domainUsername')]" + } + }, + "domainPassword": { + "reference": { + "keyVault": { + "id": "[[parameters('keyVaultResourceId')]" + }, + "secretName": "[[parameters('domainPassword')]" + } + }, + "domainOUPath": { + "value": "[[parameters('domainOUPath')]" + }, + "domainFQDN": { + "value": "[[parameters('domainFQDN')]" + }, + "keyVaultResourceId": { + "value": "[[parameters('keyVaultResourceId')]" + } + }, + "template": { + "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "vmName": { + "type": "string" + }, + "location": { + "type": "string" + }, + "domainUsername": { + "type": "string" + }, + "domainPassword": { + "type": "securestring" + }, + "domainFQDN": { + "type": "string" + }, + "domainOUPath": { + "type": "string" + }, + "keyVaultResourceId": { + "type": "string" + } + }, + "variables": { + "domainJoinOptions": 3, + "vmName": "[[parameters('vmName')]" + }, + "resources": [ + { + "apiVersion": "2015-06-15", + "type": "Microsoft.Compute/virtualMachines/extensions", + "name": "[[concat(variables('vmName'),'/joindomain')]", + "location": "[[resourceGroup().location]", + "properties": { + "publisher": "Microsoft.Compute", + "type": "JsonADDomainExtension", + "typeHandlerVersion": "1.3", + "autoUpgradeMinorVersion": true, + "settings": { + "Name": "[[parameters('domainFQDN')]", + "User": "[[parameters('domainUserName')]", + "Restart": "true", + "Options": "[[variables('domainJoinOptions')]", + "OUPath": "[[parameters('domainOUPath')]" + }, + "protectedSettings": { + "Password": "[[parameters('domainPassword')]" + } + } + } + ], + "outputs": {} + } + } + } + } + } + } + }, + "name": "Deploy-Windows-DomainJoin" + } + ] + }, + "initiatives": { + "policySetDefinitions": [ + { + "properties": { + "Description": "This policy set deploys the configurations of application Azure resources to forward diagnostic logs and metrics to an Azure Log Analytics workspace. See the list of policies of the services that are included ", + "DisplayName": "Deploy Diagnostic Settings to Azure Services", + "Parameters": { + "logAnalytics": { + "metadata": { + "description": "Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.", + "displayName": "Log Analytics workspace", + "strongType": "omsWorkspace" + }, + "type": "String" + }, + "profileName": { + "type": "string", + "defaultValue": "setbypolicy", + "metadata": { + "displayName": "Profile name", + "description": "The diagnostic settings profile name" + } + }, + "ACILogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Container Instances to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Container Instances to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled." + } + }, + "ACRLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Container Registry to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Container Registry to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled." + } + }, + "AKSLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Kubernetes Service to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Kubernetes Service to stream to a Log Analytics workspace when any Kubernetes Service which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled." + } + }, + "AnalysisServiceLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Analysis Services to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Analysis Services to stream to a Log Analytics workspace when any Analysis Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "APIMgmtLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for API Management to Log Analytics workspace", + "description": "Deploys the diagnostic settings for API Management to stream to a Log Analytics workspace when any API Management which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "ApplicationGatewayLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Application Gateway to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Application Gateway to stream to a Log Analytics workspace when any Application Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "AutomationLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Automation to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Automation to stream to a Log Analytics workspace when any Automation which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "BatchLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Batch to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Batch to stream to a Log Analytics workspace when any Batch which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "CDNEndpointsLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for CDN Endpoint to Log Analytics workspace", + "description": "Deploys the diagnostic settings for CDN Endpoint to stream to a Log Analytics workspace when any CDN Endpoint which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "CognitiveServicesLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Cognitive Services to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Cognitive Services to stream to a Log Analytics workspace when any Cognitive Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "CosmosLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Cosmos DB to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Cosmos DB to stream to a Log Analytics workspace when any Cosmos DB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "DatabricksLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Databricks to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Databricks to stream to a Log Analytics workspace when any Databricks which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "DataFactoryLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Data Factory to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Data Factory to stream to a Log Analytics workspace when any Data Factory which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "DataLakeStoreLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Azure Data Lake Store to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Azure Data Lake Store to stream to a Log Analytics workspace when anyAzure Data Lake Store which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "DataLakeAnalyticsLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Data Lake Analytics to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Data Lake Analytics to stream to a Log Analytics workspace when any Data Lake Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "EventGridSubLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Event Grid subscriptions to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Event Grid subscriptions to stream to a Log Analytics workspace when any Event Grid subscriptions which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "EventGridTopicLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Event Grid Topic to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Event Grid Topic to stream to a Log Analytics workspace when any Event Grid Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "EventHubLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Event Hubs to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Event Hubs to stream to a Log Analytics workspace when any Event Hubs which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "EventSystemTopicLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Event Grid System Topic to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Event Grid System Topic to stream to a Log Analytics workspace when any Event Grid System Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "ExpressRouteLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for ExpressRoute to Log Analytics workspace", + "description": "Deploys the diagnostic settings for ExpressRoute to stream to a Log Analytics workspace when any ExpressRoute which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "FirewallLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Firewall to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Firewall to stream to a Log Analytics workspace when any Firewall which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "FrontDoorLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Front Door to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Front Door to stream to a Log Analytics workspace when any Front Door which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "FunctionAppLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Azure Function App to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Azure Function App to stream to a Log Analytics workspace when any function app which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "HDInsightLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for HDInsight to Log Analytics workspace", + "description": "Deploys the diagnostic settings for HDInsight to stream to a Log Analytics workspace when any HDInsight which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "IotHubLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for IoT Hub to Log Analytics workspace", + "description": "Deploys the diagnostic settings for IoT Hub to stream to a Log Analytics workspace when any IoT Hub which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "KeyVaultLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Key Vault to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Key Vault to stream to a Log Analytics workspace when any Key Vault which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "LoadBalancerLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Load Balancer to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Load Balancer to stream to a Log Analytics workspace when any Load Balancer which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "LogicAppsISELogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Logic Apps integration service environment to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Logic Apps integration service environment to stream to a Log Analytics workspace when any Logic Apps integration service environment which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "LogicAppsWFLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Logic Apps Workflow runtime to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Logic Apps Workflow runtimeto stream to a Log Analytics workspace when any Logic Apps Workflow runtime which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "MariaDBLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for MariaDB to Log Analytics workspace", + "description": "Deploys the diagnostic settings for MariaDB to stream to a Log Analytics workspace when any MariaDB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "MlWorkspaceLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Machine Learning workspace to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Machine Learning workspace to stream to a Log Analytics workspace when any Machine Learning workspace which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "MySQLLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Database for MySQL to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Database for MySQL to stream to a Log Analytics workspace when any Database for MySQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "NetworkSecurityGroupsLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Network Security Groups to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Network Security Groups to stream to a Log Analytics workspace when any Network Security Groups which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "NetworkNICLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Network Interfaces to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Network Interfaces to stream to a Log Analytics workspace when any Network Interfaces which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "PostgreSQLLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Database for PostgreSQL to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Database for PostgreSQL to stream to a Log Analytics workspace when any Database for PostgreSQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "PowerBIEmbeddedLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Power BI Embedded to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Power BI Embedded to stream to a Log Analytics workspace when any Power BI Embedded which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "NetworkPublicIPNicLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Public IP addresses to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Public IP addresses to stream to a Log Analytics workspace when any Public IP addresses which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "RecoveryVaultLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Recovery Services vaults to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Recovery Services vaults to stream to a Log Analytics workspace when any Recovery Services vaults which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "RedisCacheLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Redis Cache to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Redis Cache to stream to a Log Analytics workspace when any Redis Cache which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "RelayLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Relay to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Relay to stream to a Log Analytics workspace when any Relay which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "SearchServicesLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Search Services to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Search Services to stream to a Log Analytics workspace when any Search Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "ServiceBusLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Service Bus namespaces to Log Analytics workspace", + "description": "Deploys the diagnostic settings for ServiceBus to stream to a Log Analytics workspace when any ServiceBus which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "SignalRLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for SignalR to Log Analytics workspace", + "description": "Deploys the diagnostic settings for SignalR to stream to a Log Analytics workspace when any SignalR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "SQLDBsLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for SQL Databases to Log Analytics workspace", + "description": "Deploys the diagnostic settings for SQL Databases to stream to a Log Analytics workspace when any SQL Databases which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "SQLElasticPoolsLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for SQL Elastic Pools to Log Analytics workspace", + "description": "Deploys the diagnostic settings for SQL Elastic Pools to stream to a Log Analytics workspace when any SQL Elastic Pools which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "SQLMLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for SQL Managed Instances to Log Analytics workspace", + "description": "Deploys the diagnostic settings for SQL Managed Instances to stream to a Log Analytics workspace when any SQL Managed Instances which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "StreamAnalyticsLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Stream Analytics to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Stream Analytics to stream to a Log Analytics workspace when any Stream Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "TimeSeriesInsightsLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Time Series Insights to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Time Series Insights to stream to a Log Analytics workspace when any Time Series Insights which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "TrafficManagerLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Traffic Manager to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Traffic Manager to stream to a Log Analytics workspace when any Traffic Manager which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "VirtualNetworkLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Virtual Network to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Virtual Network to stream to a Log Analytics workspace when any Virtual Network which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "VirtualMachinesLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Virtual Machines to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Virtual Machines to stream to a Log Analytics workspace when any Virtual Machines which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "VMSSLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for Virtual Machine Scale Sets to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Virtual Machine Scale Sets to stream to a Log Analytics workspace when any Virtual Machine Scale Sets which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "VNetGWLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for VPN Gateway to Log Analytics workspace", + "description": "Deploys the diagnostic settings for VPN Gateway to stream to a Log Analytics workspace when any VPN Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled." + } + }, + "AppServiceLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for App Service Plan to Log Analytics workspace", + "description": "Deploys the diagnostic settings for App Service Plan to stream to a Log Analytics workspace when any App Service Plan which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + }, + "AppServiceWebappLogAnalyticsEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy Diagnostic Settings for App Service to Log Analytics workspace", + "description": "Deploys the diagnostic settings for Web App to stream to a Log Analytics workspace when any Web App which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled" + } + } + }, + "PolicyDefinitionGroups": null, + "metadata": { + "version": "1.0.0", + "category": "Monitoring" + }, + "PolicyDefinitions": [ + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ACI', variables('scope'))]", + "policyDefinitionReferenceId": "ACIDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('ACILogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ACR', variables('scope'))]", + "policyDefinitionReferenceId": "ACRDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('ACRLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AKS', variables('scope'))]", + "policyDefinitionReferenceId": "AKSDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('AKSLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AnalysisService', variables('scope'))]", + "policyDefinitionReferenceId": "AnalysisServiceDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('AnalysisServiceLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-APIMgmt', variables('scope'))]", + "policyDefinitionReferenceId": "APIMgmtDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('APIMgmtLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ApplicationGateway', variables('scope'))]", + "policyDefinitionReferenceId": "ApplicationGatewayDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('ApplicationGatewayLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AA', variables('scope'))]", + "policyDefinitionReferenceId": "AutomationDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('AutomationLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Batch', variables('scope'))]", + "policyDefinitionReferenceId": "BatchDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('BatchLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CDNEndpoints', variables('scope'))]", + "policyDefinitionReferenceId": "CDNEndpointsDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('CDNEndpointsLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CognitiveServices', variables('scope'))]", + "policyDefinitionReferenceId": "CognitiveServicesDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('CognitiveServicesLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CosmosDB', variables('scope'))]", + "policyDefinitionReferenceId": "CosmosDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('CosmosLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Databricks', variables('scope'))]", + "policyDefinitionReferenceId": "DatabricksDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('DatabricksLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DataFactory', variables('scope'))]", + "policyDefinitionReferenceId": "DataFactoryDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('DataFactoryLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DataLakeStore', variables('scope'))]", + "policyDefinitionReferenceId": "DataLakeStoreDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('DataLakeStoreLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DLAnalytics', variables('scope'))]", + "policyDefinitionReferenceId": "DataLakeAnalyticsDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('DataLakeAnalyticsLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridSub', variables('scope'))]", + "policyDefinitionReferenceId": "EventGridSubDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('EventGridSubLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridTopic', variables('scope'))]", + "policyDefinitionReferenceId": "EventGridTopicDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('EventGridTopicLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventHub', variables('scope'))]", + "policyDefinitionReferenceId": "EventHubDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('EventHubLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridSystemTopic', variables('scope'))]", + "policyDefinitionReferenceId": "EventSystemTopicDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('EventSystemTopicLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ExpressRoute', variables('scope'))]", + "policyDefinitionReferenceId": "ExpressRouteDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('ExpressRouteLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Firewall', variables('scope'))]", + "policyDefinitionReferenceId": "FirewallDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('FirewallLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-FrontDoor', variables('scope'))]", + "policyDefinitionReferenceId": "FrontDoorDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('FrontDoorLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Function', variables('scope'))]", + "policyDefinitionReferenceId": "FunctionAppDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('FunctionAppLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-HDInsight', variables('scope'))]", + "policyDefinitionReferenceId": "HDInsightDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('HDInsightLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-iotHub', variables('scope'))]", + "policyDefinitionReferenceId": "IotHubDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('IotHubLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-KeyVault', variables('scope'))]", + "policyDefinitionReferenceId": "KeyVaultDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('KeyVaultLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LoadBalancer', variables('scope'))]", + "policyDefinitionReferenceId": "LoadBalancerDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('LoadBalancerLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LogicAppsISE', variables('scope'))]", + "policyDefinitionReferenceId": "LogicAppsISEDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('LogicAppsISELogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LogicAppsWF', variables('scope'))]", + "policyDefinitionReferenceId": "LogicAppsWFDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('LogicAppsWFLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MariaDB', variables('scope'))]", + "policyDefinitionReferenceId": "MariaDBDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('MariaDBLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MlWorkspace', variables('scope'))]", + "policyDefinitionReferenceId": "MlWorkspaceDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('MlWorkspaceLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MySQL', variables('scope'))]", + "policyDefinitionReferenceId": "MySQLDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('MySQLLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-NetworkSecurityGroups', variables('scope'))]", + "policyDefinitionReferenceId": "NetworkSecurityGroupsDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('NetworkSecurityGroupsLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-NIC', variables('scope'))]", + "policyDefinitionReferenceId": "NetworkNICDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('NetworkNICLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PostgreSQL', variables('scope'))]", + "policyDefinitionReferenceId": "PostgreSQLDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('PostgreSQLLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PowerBIEmbedded', variables('scope'))]", + "policyDefinitionReferenceId": "PowerBIEmbeddedDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('PowerBIEmbeddedLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PublicIP', variables('scope'))]", + "policyDefinitionReferenceId": "NetworkPublicIPNicDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('NetworkPublicIPNicLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-RecoveryVault', variables('scope'))]", + "policyDefinitionReferenceId": "RecoveryVaultDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('RecoveryVaultLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-RedisCache', variables('scope'))]", + "policyDefinitionReferenceId": "RedisCacheDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('RedisCacheLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Relay', variables('scope'))]", + "policyDefinitionReferenceId": "RelayDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('RelayLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SearchServices', variables('scope'))]", + "policyDefinitionReferenceId": "SearchServicesDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('SearchServicesLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ServiceBus', variables('scope'))]", + "policyDefinitionReferenceId": "ServiceBusDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('ServiceBusLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SignalR', variables('scope'))]", + "policyDefinitionReferenceId": "SignalRDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('SignalRLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLDBs', variables('scope'))]", + "policyDefinitionReferenceId": "SQLDBsDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('SQLDBsLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLElasticPools', variables('scope'))]", + "policyDefinitionReferenceId": "SQLElasticPoolsDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('SQLElasticPoolsLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLMI', variables('scope'))]", + "policyDefinitionReferenceId": "SQLMDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('SQLMLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-StreamAnalytics', variables('scope'))]", + "policyDefinitionReferenceId": "StreamAnalyticsDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('StreamAnalyticsLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-TimeSeriesInsights', variables('scope'))]", + "policyDefinitionReferenceId": "TimeSeriesInsightsDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('TimeSeriesInsightsLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-TrafficManager', variables('scope'))]", + "policyDefinitionReferenceId": "TrafficManagerDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('TrafficManagerLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VirtualNetwork', variables('scope'))]", + "policyDefinitionReferenceId": "VirtualNetworkDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('VirtualNetworkLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VM', variables('scope'))]", + "policyDefinitionReferenceId": "VirtualMachinesDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('VirtualMachinesLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VMSS', variables('scope'))]", + "policyDefinitionReferenceId": "VMSSDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('VMSSLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VNetGW', variables('scope'))]", + "policyDefinitionReferenceId": "VNetGWDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('VNetGWLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-WebServerFarm', variables('scope'))]", + "policyDefinitionReferenceId": "AppServiceDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('AppServiceLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Website', variables('scope'))]", + "policyDefinitionReferenceId": "AppServiceWebappDeployDiagnosticLogDeployLogAnalytics", + "parameters": { + "logAnalytics": { + "value": "[[parameters('logAnalytics')]" + }, + "effect": { + "value": "[[parameters('AppServiceWebappLogAnalyticsEffect')]" + }, + "profileName": { + "value": "[[parameters('profileName')]" + } + } + } + ] + }, + "type": null, + "name": "Deploy-Diag-LogAnalytics" + }, + { + "properties": { + "Description": "This policy denies creation of Azure PAAS services with exposed public endpoints. This policy set includes the policy for the following services KeyVault, Storage accounts, AKS, Cosmos, SQL Servers, MariaDB, MySQL and Postgress. ", + "DisplayName": "Public network access should be disabled for PAAS services", + "Parameters": { + "CosmosPublicIpDenyEffect": { + "type": "string", + "defaultValue": "Deny", + "allowedValues": [ + "Audit", + "Deny", + "Disabled" + ], + "metadata": { + "displayName": "Public network access should be disabled for CosmosDB", + "description": "This policy denies that Cosmos database accounts are created with out public network access is disabled." + } + }, + "MariaDBPublicIpDenyEffect": { + "type": "string", + "defaultValue": "Deny", + "allowedValues": [ + "Audit", + "Deny", + "Disabled" + ], + "metadata": { + "displayName": "Public network access should be disabled for MariaDB", + "description": "This policy denies the creation of Maria DB accounts with exposed public endpoints" + } + }, + "MySQLPublicIpDenyEffect": { + "type": "string", + "defaultValue": "Deny", + "allowedValues": [ + "Audit", + "Deny", + "Disabled" + ], + "metadata": { + "displayName": "Public network access should be disabled for MySQL", + "description": "This policy denies creation of MySql DB accounts with exposed public endpoints" + } + }, + "PostgreSQLPublicIpDenyEffect": { + "type": "string", + "defaultValue": "Deny", + "allowedValues": [ + "Audit", + "Deny", + "Disabled" + ], + "metadata": { + "displayName": "Public network access should be disabled for PostgreSql", + "description": "This policy denies creation of Postgre SQL DB accounts with exposed public endpoints" + } + }, + "KeyVaultPublicIpDenyEffect": { + "type": "string", + "defaultValue": "Deny", + "allowedValues": [ + "Audit", + "Deny", + "Disabled" + ], + "metadata": { + "displayName": "Public network access should be disabled for KeyVault", + "description": "This policy denies creation of Key Vaults with IP Firewall exposed to all public endpoints" + } + }, + "SqlServerPublicIpDenyEffect": { + "type": "string", + "defaultValue": "Deny", + "allowedValues": [ + "Audit", + "Deny", + "Disabled" + ], + "metadata": { + "displayName": "Public network access on Azure SQL Database should be disabled", + "description": "This policy denies creation of Sql servers with exposed public endpoints" + } + }, + "StoragePublicIpDenyEffect": { + "type": "string", + "defaultValue": "Deny", + "allowedValues": [ + "Audit", + "Deny", + "Disabled" + ], + "metadata": { + "displayName": "Public network access onStorage accounts should be disabled", + "description": "This policy denies creation of storage accounts with IP Firewall exposed to all public endpoints" + } + }, + "AKSPublicIpDenyEffect": { + "type": "string", + "defaultValue": "Deny", + "allowedValues": [ + "Audit", + "Deny", + "Disabled" + ], + "metadata": { + "displayName": "Public network access on AKS API should be disabled", + "description": "This policy denies the creation of Azure Kubernetes Service non-private clusters" + } + } + }, + "PolicyDefinitionGroups": null, + "metadata": { + "version": "1.0.0", + "category": "Network" + }, + "PolicyDefinitions": [ + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-CosmosDB', variables('scope'))]", + "policyDefinitionReferenceId": "CosmosDenyPaasPublicIP", + "parameters": { + "effect": { + "value": "[[parameters('CosmosPublicIpDenyEffect')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-MariaDB', variables('scope'))]", + "policyDefinitionReferenceId": "MariaDBDenyPaasPublicIP", + "parameters": { + "effect": { + "value": "[[parameters('MariaDBPublicIpDenyEffect')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-MySQL', variables('scope'))]", + "policyDefinitionReferenceId": "MySQLDenyPaasPublicIP", + "parameters": { + "effect": { + "value": "[[parameters('MySQLPublicIpDenyEffect')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-PostgreSql', variables('scope'))]", + "policyDefinitionReferenceId": "PostgreSQLDenyPaasPublicIP", + "parameters": { + "effect": { + "value": "[[parameters('PostgreSQLPublicIpDenyEffect')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-KeyVault', variables('scope'))]", + "policyDefinitionReferenceId": "KeyVaultDenyPaasPublicIP", + "parameters": { + "effect": { + "value": "[[parameters('KeyVaultPublicIpDenyEffect')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Sql', variables('scope'))]", + "policyDefinitionReferenceId": "SqlServerDenyPaasPublicIP", + "parameters": { + "effect": { + "value": "[[parameters('SqlServerPublicIpDenyEffect')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Storage', variables('scope'))]", + "policyDefinitionReferenceId": "StorageDenyPaasPublicIP", + "parameters": { + "effect": { + "value": "[[parameters('StoragePublicIpDenyEffect')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Aks', variables('scope'))]", + "policyDefinitionReferenceId": "AKSDenyPaasPublicIP", + "parameters": { + "effect": { + "value": "[[parameters('AKSPublicIpDenyEffect')]" + } + } + } + ] + }, + "type": null, + "name": "Deny-PublicEndpoints" + }, + { + "properties": { + "Description": "Deploy auditing, Alert, TDE and SQL vulnerability to SQL Databases when it not exist in the deployment", + "DisplayName": "Deploy SQL Database built-in SQL security configuration", + "Parameters": { + "vulnerabilityAssessmentsEmail": { + "metadata": { + "description": "The email address to send alerts", + "displayName": "The email address to send alerts" + }, + "type": "String" + }, + "vulnerabilityAssessmentsStorageID": { + "metadata": { + "description": "The storage account ID to store assessments", + "displayName": "The storage account ID to store assessments" + }, + "type": "String" + }, + "SqlDbTdeDeploySqlSecurityEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy SQL Database Transparent Data Encryption ", + "description": "Deploy the Transparent Data Encryption when it is not enabled in the deployment" + } + }, + "SqlDbSecurityAlertPoliciesDeploySqlSecurityEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy SQL Database security Alert Policies configuration with email admin accounts", + "description": "Deploy the security Alert Policies configuration with email admin accounts when it not exist in current configuration" + } + }, + "SqlDbAuditingSettingsDeploySqlSecurityEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy SQL database auditing settings", + "description": "Deploy auditing settings to SQL Database when it not exist in the deployment" + } + }, + "SqlDbVulnerabilityAssessmentsDeploySqlSecurityEffect": { + "type": "string", + "defaultValue": "DeployIfNotExists", + "allowedValues": [ + "DeployIfNotExists", + "Disabled" + ], + "metadata": { + "displayName": "Deploy SQL Database vulnerability Assessments", + "description": "Deploy SQL Database vulnerability Assessments when it not exist in the deployment. To the specific storage account in the parameters" + } + } + }, + "PolicyDefinitionGroups": null, + "metadata": { + "version": "1.0.0", + "category": "SQL" + }, + "PolicyDefinitions": [ + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-Tde', variables('scope'))]", + "policyDefinitionReferenceId": "SqlDbTdeDeploySqlSecurity", + "parameters": { + "effect": { + "value": "[[parameters('SqlDbTdeDeploySqlSecurityEffect')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-SecurityAlertPolicies', variables('scope'))]", + "policyDefinitionReferenceId": "SqlDbSecurityAlertPoliciesDeploySqlSecurity", + "parameters": { + "effect": { + "value": "[[parameters('SqlDbSecurityAlertPoliciesDeploySqlSecurityEffect')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-AuditingSettings', variables('scope'))]", + "policyDefinitionReferenceId": "SqlDbAuditingSettingsDeploySqlSecurity", + "parameters": { + "effect": { + "value": "[[parameters('SqlDbAuditingSettingsDeploySqlSecurityEffect')]" + } + } + }, + { + "policyDefinitionId": "[format('{0}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-vulnerabilityAssessments', variables('scope'))]", + "policyDefinitionReferenceId": "SqlDbVulnerabilityAssessmentsDeploySqlSecurity", + "parameters": { + "effect": { + "value": "[[parameters('SqlDbVulnerabilityAssessmentsDeploySqlSecurityEffect')]" + }, + "vulnerabilityAssessmentsEmail": { + "value": "[[parameters('vulnerabilityAssessmentsEmail')]" + }, + "vulnerabilityAssessmentsStorageID": { + "value": "[[parameters('vulnerabilityAssessmentsStorageID')]" + } + } + } + ] + }, + "type": null, + "name": "Deploy-Sql-Security" + } + ] + } + }, + "resources": [ + { + "type": "Microsoft.Authorization/policyDefinitions", + "apiVersion": "2019-09-01", + "name": "[variables('policies').policyDefinitions[0].name]", + "properties": { + "displayName": "[variables('policies').policyDefinitions[0].properties.displayName]", + "description": "[variables('policies').policyDefinitions[0].properties.description]", + "mode": "All", + "policyType": "Custom", + "parameters": "[variables('policies').policyDefinitions[0].properties.parameters]", + "policyRule": "[variables('policies').policyDefinitions[0].properties.policyRule]", + "metadata": "[variables('policies').policyDefinitions[0].properties.metadata]" + } + }, + { + "type": "Microsoft.Authorization/policySetDefinitions", + "apiVersion": "2019-09-01", + "name": "[variables('initiatives').policySetDefinitions[0].name]", + "properties": { + "displayName": "[variables('initiatives').policySetDefinitions[0].properties.displayName]", + "description": "[variables('initiatives').policySetDefinitions[0].properties.description]", + "parameters": "[variables('initiatives').policySetDefinitions[0].properties.parameters]", + "policyDefinitions": "[variables('initiatives').policySetDefinitions[0].properties.policyDefinitions]", + "metadata": "[variables('initiatives').policySetDefinitions[0].properties.metadata]" + } + } + ], + "metadata": { + "_generator": { + "name": "bicep", + "version": "dev", + "templateHash": "10021118820379852731" + } + } +} \ No newline at end of file diff --git a/src/Bicep.Core.Samples/Files/LargeTemplate_LF/main.symbols.bicep b/src/Bicep.Core.Samples/Files/LargeTemplate_LF/main.symbols.bicep new file mode 100644 index 00000000000..130ecc7c41b --- /dev/null +++ b/src/Bicep.Core.Samples/Files/LargeTemplate_LF/main.symbols.bicep @@ -0,0 +1,17343 @@ +targetScope = 'managementGroup' + +@maxLength(5) +param topLevelManagementGroupPrefix string +//@[6:35) Parameter topLevelManagementGroupPrefix. Type: string. Declaration start char: 0, length: 56 + +var scope = '/providers/Microsoft.Management/managementGroups/${topLevelManagementGroupPrefix}' +//@[4:9) Variable scope. Type: string. Declaration start char: 0, length: 95 +var policies = { +//@[4:12) Variable policies. Type: object. Declaration start char: 0, length: 601644 + policyDefinitions: [ + { + properties: { + Description: 'Deploys the diagnostic settings for Container Instances to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.' + DisplayName: 'Deploy Diagnostic Settings for Container Instances to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.ContainerInstance/containerGroups' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.ContainerInstance/containerGroups/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-ACI' + } + { + Properties: { + Description: 'Depoloys a default budget on subscriptions.' + DisplayName: 'Deploy a default budget on subscriptions' + Mode: 'All' + Parameters: { + amount: { + type: 'string' + defaultValue: '1000' + metadata: { + description: 'The total amount of cost or usage to track with the budget' + } + } + timeGrain: { + type: 'string' + defaultValue: 'Monthly' + allowedValues: [ + 'Monthly' + 'Quarterly' + 'Annually' + 'BillingMonth' + 'BillingQuarter' + 'BillingAnnual' + ] + metadata: { + description: 'The time covered by a budget. Tracking of the amount will be reset based on the time grain.' + } + } + firstThreshold: { + type: 'string' + defaultValue: '90' + metadata: { + description: 'Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0 and 1000.' + } + } + secondThreshold: { + type: 'string' + defaultValue: '100' + metadata: { + description: 'Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0 and 1000.' + } + } + contactRoles: { + type: 'array' + defaultValue: [ + 'Owner' + 'Contributor' + ] + metadata: { + description: 'The list of contact RBAC roles, in an array, to send the budget notification to when the threshold is exceeded.' + } + } + contactEmails: { + type: 'array' + defaultValue: [] + metadata: { + description: 'The list of email addresses, in an array, to send the budget notification to when the threshold is exceeded.' + } + } + contactGroups: { + type: 'array' + defaultValue: [] + metadata: { + description: 'The list of action groups, in an array, to send the budget notification to when the threshold is exceeded. It accepts array of strings.' + } + } + } + metadata: { + version: '1.0.0' + category: 'Budget' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: 'DeployIfNotExists' + details: { + type: 'Microsoft.Consumption/budgets' + deploymentScope: 'Subscription' + existenceScope: 'Subscription' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Consumption/budgets/amount' + equals: '[parameters(\'amount\')]' + } + { + field: 'Microsoft.Consumption/budgets/timeGrain' + equals: '[parameters(\'timeGrain\')]' + } + { + field: 'Microsoft.Consumption/budgets/category' + equals: 'Cost' + } + ] + } + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' + ] + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + amount: { + value: '[parameters(\'amount\')]' + } + timeGrain: { + value: '[parameters(\'timeGrain\')]' + } + firstThreshold: { + value: '[parameters(\'firstThreshold\')]' + } + secondThreshold: { + value: '[parameters(\'secondThreshold\')]' + } + contactEmails: { + value: '[parameters(\'contactEmails\')]' + } + contactRoles: { + value: '[parameters(\'contactRoles\')]' + } + contactGroups: { + value: '[parameters(\'contactGroups\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + amount: { + type: 'string' + } + timeGrain: { + type: 'string' + } + firstThreshold: { + type: 'string' + } + secondThreshold: { + type: 'string' + } + contactEmails: { + type: 'array' + } + contactRoles: { + type: 'array' + } + contactGroups: { + type: 'array' + } + startDate: { + type: 'string' + defaultValue: '[concat(utcNow(\'MM\'), \'/01/\', utcNow(\'yyyy\'))]' + } + } + resources: [ + { + type: 'Microsoft.Consumption/budgets' + apiVersion: '2019-10-01' + name: 'default-sandbox-budget' + properties: { + timePeriod: { + startDate: '[parameters(\'startDate\')]' + } + timeGrain: '[parameters(\'timeGrain\')]' + amount: '[parameters(\'amount\')]' + category: 'Cost' + notifications: { + NotificationForExceededBudget1: { + enabled: true + operator: 'GreaterThan' + threshold: '[parameters(\'firstThreshold\')]' + contactEmails: '[parameters(\'contactEmails\')]' + contactRoles: '[parameters(\'contactRoles\')]' + contactGroups: '[parameters(\'contactGroups\')]' + } + NotificationForExceededBudget2: { + enabled: true + operator: 'GreaterThan' + threshold: '[parameters(\'secondThreshold\')]' + contactEmails: '[parameters(\'contactEmails\')]' + contactRoles: '[parameters(\'contactRoles\')]' + contactGroups: '[parameters(\'contactGroups\')]' + } + } + } + } + ] + } + } + } + } + } + } + } + name: 'Deploy-Budget' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Container Registry to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.' + DisplayName: 'Deploy Diagnostic Settings for Container Registry to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.ContainerRegistry/registries' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.ContainerRegistry/registries/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'ContainerRegistryLoginEvents' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ContainerRegistryRepositoryEvents' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-ACR' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Activity Log to stream to a Log Analytics workspace when any Activity Log which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with category enabled.' + DisplayName: 'Deploy Diagnostic Settings for Activity Log to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Primary Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + deploymentScope: 'Subscription' + existenceScope: 'Subscription' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + logAnalytics: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + name: 'subscriptionToLa' + type: 'Microsoft.Insights/diagnosticSettings' + apiVersion: '2017-05-01-preview' + location: 'Global' + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + logs: [ + { + category: 'Administrative' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Security' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ServiceHealth' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Alert' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Recommendation' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Policy' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Autoscale' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ResourceHealth' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + } + } + } + } + name: 'Deploy-Diagnostics-ActivityLog' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Kubernetes Service to stream to a Log Analytics workspace when any Kubernetes Service which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.' + DisplayName: 'Deploy Diagnostic Settings for Kubernetes Service to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.ContainerService/managedClusters' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.ContainerService/managedClusters/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'kube-audit' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'kube-apiserver' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'kube-controller-manager' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'kube-scheduler' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'cluster-autoscaler' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'guard' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'kube-audit-admin' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-AKS' + } + { + Properties: { + Description: 'This policy deploys virtual network and peer to the hub' + DisplayName: 'Deploys virtual network peering to hub' + Mode: 'All' + Parameters: { + vNetName: { + type: 'String' + metadata: { + displayName: 'vNetName' + description: 'Name of the landing zone vNet' + } + } + vNetRgName: { + type: 'String' + metadata: { + displayName: 'vNetRgName' + description: 'Name of the landing zone vNet RG' + } + } + vNetLocation: { + type: 'String' + metadata: { + displayName: 'vNetLocation' + description: 'Location for the vNet' + } + } + vNetCidrRange: { + type: 'String' + metadata: { + displayName: 'vNetCidrRange' + description: 'CIDR Range for the vNet' + } + } + hubResourceId: { + type: 'String' + metadata: { + displayName: 'hubResourceId' + description: 'Resource ID for the HUB vNet' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: 'deployIfNotExists' + details: { + type: 'Microsoft.Network/virtualNetworks' + name: '[parameters(\'vNetName\')]' + deploymentScope: 'Subscription' + existenceScope: 'ResourceGroup' + ResourceGroupName: '[parameters(\'vNetRgName\')]' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' + ] + existenceCondition: { + allOf: [ + { + field: 'name' + like: '[parameters(\'vNetName\')]' + } + { + field: 'location' + equals: '[parameters(\'vNetLocation\')]' + } + ] + } + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + vNetRgName: { + value: '[parameters(\'vNetRgName\')]' + } + vNetName: { + value: '[parameters(\'vNetName\')]' + } + vNetLocation: { + value: '[parameters(\'vNetLocation\')]' + } + vNetCidrRange: { + value: '[parameters(\'vNetCidrRange\')]' + } + hubResourceId: { + value: '[parameters(\'hubResourceId\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + vNetRgName: { + type: 'string' + } + vNetName: { + type: 'string' + } + vNetLocation: { + type: 'string' + } + vNetCidrRange: { + type: 'string' + } + vNetPeerUseRemoteGateway: { + type: 'bool' + defaultValue: false + } + hubResourceId: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-lz-vnet-\',substring(uniqueString(subscription().id),0,6),\'-rg\')]' + location: '[parameters(\'vNetLocation\')]' + dependsOn: [] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2020-06-01' + name: '[parameters(\'vNetRgName\')]' + location: '[parameters(\'vNetLocation\')]' + properties: {} + } + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2020-06-01' + name: 'NetworkWatcherRG' + location: '[parameters(\'vNetLocation\')]' + properties: {} + } + ] + outputs: {} + } + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-lz-vnet-\',substring(uniqueString(subscription().id),0,6))]' + dependsOn: [ + '[concat(\'es-lz-vnet-\',substring(uniqueString(subscription().id),0,6),\'-rg\')]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualNetworks' + apiVersion: '2020-06-01' + name: '[parameters(\'vNetName\')]' + location: '[parameters(\'vNetLocation\')]' + dependsOn: [] + properties: { + addressSpace: { + addressPrefixes: [ + '[parameters(\'vNetCidrRange\')]' + ] + } + } + } + { + type: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' + apiVersion: '2020-05-01' + name: '[concat(parameters(\'vNetName\'), \'/peerToHub\')]' + dependsOn: [ + '[parameters(\'vNetName\')]' + ] + properties: { + remoteVirtualNetwork: { + id: '[parameters(\'hubResourceId\')]' + } + allowVirtualNetworkAccess: true + allowForwardedTraffic: true + allowGatewayTransit: false + useRemoteGateways: '[parameters(\'vNetPeerUseRemoteGateway\')]' + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-lz-hub-\',substring(uniqueString(subscription().id),0,6),\'-peering\')]' + subscriptionId: '[split(parameters(\'hubResourceId\'),\'/\')[2]]' + resourceGroup: '[split(parameters(\'hubResourceId\'),\'/\')[4]]' + dependsOn: [ + '[parameters(\'vNetName\')]' + ] + properties: { + mode: 'Incremental' + expressionEvaluationOptions: { + scope: 'inner' + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + remoteVirtualNetwork: { + Type: 'string' + defaultValue: false + } + hubName: { + Type: 'string' + defaultValue: false + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' + name: '[[concat(parameters(\'hubName\'),\'/\',last(split(parameters(\'remoteVirtualNetwork\'),\'/\')))]' + apiVersion: '2020-05-01' + properties: { + allowVirtualNetworkAccess: true + allowForwardedTraffic: true + allowGatewayTransit: true + useRemoteGateways: false + remoteVirtualNetwork: { + id: '[[parameters(\'remoteVirtualNetwork\')]' + } + } + } + ] + outputs: {} + } + parameters: { + remoteVirtualNetwork: { + value: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'vNetRgName\'), \'/providers/\',\'Microsoft.Network/virtualNetworks/\', parameters(\'vNetName\'))]' + } + hubName: { + value: '[split(parameters(\'hubResourceId\'),\'/\')[8]]' + } + } + } + } + ] + outputs: {} + } + } + resourceGroup: '[parameters(\'vNetRgName\')]' + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-VNET-HubSpoke' + } + { + properties: { + Description: 'This policy denies the creation of Azure Kubernetes Service non-private clusters' + DisplayName: 'Public network access on AKS API should be disabled' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Kubernetes' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.ContainerService/managedClusters' + } + { + field: 'Microsoft.ContainerService/managedClusters/apiServerAccessProfile.enablePrivateCluster' + notequals: 'true' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-Aks' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Analysis Services to stream to a Log Analytics workspace when any Analysis Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Analysis Services to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.AnalysisServices/servers' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.AnalysisServices/servers/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Engine' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Service' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-AnalysisService' + } + { + properties: { + Description: 'Deploys the diagnostic settings for API Management to stream to a Log Analytics workspace when any API Management which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for API Management to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.ApiManagement/service' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.ApiManagement/service/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'Gateway Requests' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + { + category: 'Capacity' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + { + category: 'EventHub Events' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + { + category: 'Network Status' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'GatewayLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-APIMgmt' + } + { + properties: { + Description: 'This policy enables you to restrict that Application Gateways is always deployed with WAF enabled' + DisplayName: 'Application Gateway should be deployed with WAF enabled' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/applicationGateways' + } + { + field: 'Microsoft.Network/applicationGateways/sku.name' + notequals: 'WAF_v2' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-AppGW-Without-WAF' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Application Gateway to stream to a Log Analytics workspace when any Application Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Application Gateway to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/applicationGateways' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/applicationGateways/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'ApplicationGatewayAccessLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ApplicationGatewayPerformanceLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ApplicationGatewayFirewallLog' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-ApplicationGateway' + } + { + properties: { + Description: 'Deploys the diagnostic settings for App Service Plan to stream to a Log Analytics workspace when any App Service Plan which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for App Service Plan to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Web/serverfarms' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Web/serverfarms/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-WebServerFarm' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Web App to stream to a Log Analytics workspace when any Web App which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for App Service to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Web/sites' + } + { + value: '[field(\'kind\')]' + notContains: 'functionapp' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Web/sites/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'AppServiceAntivirusScanAuditLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceHTTPLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceConsoleLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceHTTPLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceAppLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceFileAuditLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceAuditLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServiceIPSecAuditLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AppServicePlatformLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-Website' + } + { + properties: { + Description: 'Deploys the Azure Defender settings in Azure Security Center for the specific services.' + DisplayName: 'Deploy Azure Defender settings in Azure Security Center.' + Mode: 'Indexed' + Parameters: { + pricingTierVMs: { + type: 'String' + metadata: { + displayName: 'pricingTierVMs' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierSqlServers: { + type: 'String' + metadata: { + displayName: 'pricingTierSqlServers' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierAppServices: { + type: 'String' + metadata: { + displayName: 'pricingTierAppServices' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierStorageAccounts: { + type: 'String' + metadata: { + displayName: 'pricingTierStorageAccounts' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierContainerRegistry: { + type: 'String' + metadata: { + displayName: 'pricingTierContainerRegistry' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierKeyVaults: { + type: 'String' + metadata: { + displayName: 'pricingTierKeyVaults' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierKubernetesService: { + type: 'String' + metadata: { + displayName: 'pricingTierKubernetesService' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierDns: { + type: 'String' + metadata: { + displayName: 'pricingTierDns' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + pricingTierArm: { + type: 'String' + metadata: { + displayName: 'pricingTierArm' + description: null + } + allowedValues: [ + 'Standard' + 'Free' + ] + defaultValue: 'Standard' + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Security Center' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Security/pricings' + deploymentScope: 'subscription' + existenceScope: 'subscription' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/fb1c8493-542b-48eb-b624-b4c8fea62acd' + ] + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Security/pricings/pricingTier' + equals: 'Standard' + } + { + field: 'type' + equals: 'Microsoft.Security/pricings' + } + ] + } + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + pricingTierVMs: { + value: '[parameters(\'pricingTierVMs\')]' + } + pricingTierSqlServers: { + value: '[parameters(\'pricingTierSqlServers\')]' + } + pricingTierAppServices: { + value: '[parameters(\'pricingTierAppServices\')]' + } + pricingTierStorageAccounts: { + value: '[parameters(\'pricingTierStorageAccounts\')]' + } + pricingTierContainerRegistry: { + value: '[parameters(\'pricingTierContainerRegistry\')]' + } + pricingTierKeyVaults: { + value: '[parameters(\'pricingTierKeyVaults\')]' + } + pricingTierKubernetesService: { + value: '[parameters(\'pricingTierKubernetesService\')]' + } + pricingTierDns: { + value: '[parameters(\'pricingTierDns\')]' + } + pricingTierArm: { + value: '[parameters(\'pricingTierArm\')]' + } + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + pricingTierVMs: { + type: 'string' + metadata: { + description: 'pricingTierVMs' + } + } + pricingTierSqlServers: { + type: 'string' + metadata: { + description: 'pricingTierSqlServers' + } + } + pricingTierAppServices: { + type: 'string' + metadata: { + description: 'pricingTierAppServices' + } + } + pricingTierStorageAccounts: { + type: 'string' + metadata: { + description: 'pricingTierStorageAccounts' + } + } + pricingTierContainerRegistry: { + type: 'string' + metadata: { + description: 'ContainerRegistry' + } + } + pricingTierKeyVaults: { + type: 'string' + metadata: { + description: 'KeyVaults' + } + } + pricingTierKubernetesService: { + type: 'string' + metadata: { + description: 'KubernetesService' + } + } + pricingTierDns: { + type: 'string' + metadata: { + description: 'KubernetesService' + } + } + pricingTierArm: { + type: 'string' + metadata: { + description: 'KubernetesService' + } + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'VirtualMachines' + properties: { + pricingTier: '[parameters(\'pricingTierVMs\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'StorageAccounts' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/VirtualMachines\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierStorageAccounts\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'AppServices' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/StorageAccounts\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierAppServices\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'SqlServers' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/AppServices\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierSqlServers\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'KeyVaults' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/SqlServers\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierKeyVaults\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'KubernetesService' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/KeyVaults\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierKubernetesService\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'ContainerRegistry' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/KubernetesService\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierContainerRegistry\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'Dns' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/ContainerRegistry\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierDns\')]' + } + } + { + type: 'Microsoft.Security/pricings' + apiVersion: '2018-06-01' + name: 'Arm' + dependsOn: [ + '[concat(\'Microsoft.Security/pricings/Dns\')]' + ] + properties: { + pricingTier: '[parameters(\'pricingTierArm\')]' + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-ASC-Standard' + } + { + properties: { + Description: 'This policy denies the creation of child resources on the Automation Account' + DisplayName: 'No child resources in Automation Account' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Automation' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + in: [ + 'Microsoft.Automation/automationAccounts/runbooks' + 'Microsoft.Automation/automationAccounts/variables' + 'Microsoft.Automation/automationAccounts/modules' + 'Microsoft.Automation/automationAccounts/credentials' + 'Microsoft.Automation/automationAccounts/connections' + 'Microsoft.Automation/automationAccount/certificates' + ] + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-AA-child-resources' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Automation to stream to a Log Analytics workspace when any Automation which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Automation to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Automation/automationAccounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Automation/automationAccounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + timeGrain: null + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + logs: [ + { + category: 'JobLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'JobStreams' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DscNodeStatus' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-AA' + } + { + properties: { + displayName: 'RDP access from the Internet should be blocked' + description: 'This policy denies any network security rule that allows RDP access from Internet' + mode: 'All' + metadata: { + version: '1.0.0' + category: 'Network' + } + parameters: { + effect: { + type: 'String' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + } + } + policyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/networkSecurityGroups/securityRules' + } + { + allOf: [ + { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/access' + equals: 'Allow' + } + { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/direction' + equals: 'Inbound' + } + { + anyOf: [ + { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange' + equals: '*' + } + { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange' + equals: '3389' + } + { + value: '[if(and(not(empty(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'))), contains(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'),\'-\')), and(lessOrEquals(int(first(split(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'), \'-\'))),3389),greaterOrEquals(int(last(split(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'), \'-\'))),3389)), \'false\')]' + equals: 'true' + } + { + count: { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]' + where: { + value: '[if(and(not(empty(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')))), contains(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')),\'-\')), and(lessOrEquals(int(first(split(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')), \'-\'))),3389),greaterOrEquals(int(last(split(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')), \'-\'))),3389)) , \'false\')]' + equals: 'true' + } + } + greater: 0 + } + { + not: { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]' + notEquals: '*' + } + } + { + not: { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]' + notEquals: '3389' + } + } + ] + } + { + anyOf: [ + { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefix' + equals: '*' + } + { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefix' + equals: 'Internet' + } + { + not: { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefixes[*]' + notEquals: '*' + } + } + { + not: { + field: 'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefixes[*]' + notEquals: 'Internet' + } + } + ] + } + ] + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-RDP-From-Internet' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Batch to stream to a Log Analytics workspace when any Batch which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Batch to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Batch/batchAccounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Batch/batchAccounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'ServiceLog' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-Batch' + } + { + properties: { + Description: 'Deploys the diagnostic settings for CDN Endpoint to stream to a Log Analytics workspace when any CDN Endpoint which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for CDN Endpoint to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Cdn/profiles/endpoints' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Cdn/profiles/endpoints/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [] + logs: [ + { + category: 'CoreAnalytics' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'fullName\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-CDNEndpoints' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Cognitive Services to stream to a Log Analytics workspace when any Cognitive Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Cognitive Services to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.CognitiveServices/accounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.CognitiveServices/accounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Audit' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'RequestResponse' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Trace' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-CognitiveServices' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Cosmos DB to stream to a Log Analytics workspace when any Cosmos DB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Cosmos DB to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DocumentDB/databaseAccounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DocumentDB/databaseAccounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'Requests' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'DataPlaneRequests' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'MongoRequests' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'QueryRuntimeStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'PartitionKeyStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'PartitionKeyRUConsumption' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ControlPlaneRequests' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'CassandraRequests' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'GremlinRequests' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-CosmosDB' + } + { + properties: { + Description: 'This policy denies that Cosmos database accounts are created with out public network access is disabled.' + DisplayName: 'Public network access should be disabled for CosmosDB' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.DocumentDB/databaseAccounts' + } + { + field: 'Microsoft.DocumentDB/databaseAccounts/publicNetworkAccess' + notequals: 'Disabled' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-CosmosDB' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Databricks to stream to a Log Analytics workspace when any Databricks which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Databricks to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Databricks/workspaces' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Databricks/workspaces/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + logs: [ + { + category: 'dbfs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'clusters' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'accounts' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'jobs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'notebook' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'ssh' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'workspace' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'secrets' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'sqlPermissions' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'instancePools' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-Databricks' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Data Factory to stream to a Log Analytics workspace when any Data Factory which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Data Factory to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DataFactory/factories' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DataFactory/factories/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'ActivityRuns' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'PipelineRuns' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'TriggerRuns' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SSISPackageEventMessages' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SSISPackageExecutableStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SSISPackageEventMessageContext' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SSISPackageExecutionComponentPhases' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SSISPackageExecutionDataStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SSISIntegrationRuntimeLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-DataFactory' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Data Lake Analytics to stream to a Log Analytics workspace when any Data Lake Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Data Lake Analytics to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DataLakeAnalytics/accounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DataLakeAnalytics/accounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Audit' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Requests' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-DLAnalytics' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Azure Data Lake Store to stream to a Log Analytics workspace when anyAzure Data Lake Store which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Azure Data Lake Store to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DataLakeStore/accounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DataLakeStore/accounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Audit' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Requests' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-DataLakeStore' + } + { + properties: { + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Blob Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' + DisplayName: 'Deploy DNS Zone Group for Storage-Blob Private Endpoint' + Mode: 'Indexed' + Parameters: { + privateDnsZoneId: { + type: 'String' + metadata: { + displayName: 'privateDnsZoneId' + strongType: 'Microsoft.Network/privateDnsZones' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/privateEndpoints' + } + { + count: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + where: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + equals: 'blob' + } + } + greaterOrEquals: 1 + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + privateDnsZoneId: { + type: 'string' + } + privateEndpointName: { + type: 'string' + } + location: { + type: 'string' + } + } + resources: [ + { + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + apiVersion: '2020-03-01' + location: '[parameters(\'location\')]' + properties: { + privateDnsZoneConfigs: [ + { + name: 'storageBlob-privateDnsZone' + properties: { + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' + } + } + ] + } + } + ] + } + parameters: { + privateDnsZoneId: { + value: '[parameters(\'privateDnsZoneId\')]' + } + privateEndpointName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-DNSZoneGroup-For-Blob-PrivateEndpoint' + } + { + properties: { + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-File Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' + DisplayName: 'Deploy DNS Zone Group for Storage-File Private Endpoint' + Mode: 'Indexed' + Parameters: { + privateDnsZoneId: { + type: 'String' + metadata: { + displayName: 'privateDnsZoneId' + strongType: 'Microsoft.Network/privateDnsZones' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/privateEndpoints' + } + { + count: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + where: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + equals: 'file' + } + } + greaterOrEquals: 1 + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + privateDnsZoneId: { + type: 'string' + } + privateEndpointName: { + type: 'string' + } + location: { + type: 'string' + } + } + resources: [ + { + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + apiVersion: '2020-03-01' + location: '[parameters(\'location\')]' + properties: { + privateDnsZoneConfigs: [ + { + name: 'storageFile-privateDnsZone' + properties: { + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' + } + } + ] + } + } + ] + } + parameters: { + privateDnsZoneId: { + value: '[parameters(\'privateDnsZoneId\')]' + } + privateEndpointName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-DNSZoneGroup-For-File-PrivateEndpoint' + } + { + properties: { + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Key Vault Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' + DisplayName: 'Deploy DNS Zone Group for Key Vault Private Endpoint' + Mode: 'Indexed' + Parameters: { + privateDnsZoneId: { + type: 'String' + metadata: { + displayName: 'privateDnsZoneId' + strongType: 'Microsoft.Network/privateDnsZones' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/privateEndpoints' + } + { + count: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + where: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + equals: 'vault' + } + } + greaterOrEquals: 1 + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + privateDnsZoneId: { + type: 'string' + } + privateEndpointName: { + type: 'string' + } + location: { + type: 'string' + } + } + resources: [ + { + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + apiVersion: '2020-03-01' + location: '[parameters(\'location\')]' + properties: { + privateDnsZoneConfigs: [ + { + name: 'keyVault-privateDnsZone' + properties: { + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' + } + } + ] + } + } + ] + } + parameters: { + privateDnsZoneId: { + value: '[parameters(\'privateDnsZoneId\')]' + } + privateEndpointName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-DNSZoneGroup-For-KeyVault-PrivateEndpoint' + } + { + properties: { + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Queue Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' + DisplayName: 'Deploy DNS Zone Group for Storage-Queue Private Endpoint' + Mode: 'Indexed' + Parameters: { + privateDnsZoneId: { + type: 'String' + metadata: { + displayName: 'privateDnsZoneId' + strongType: 'Microsoft.Network/privateDnsZones' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/privateEndpoints' + } + { + count: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + where: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + equals: 'queue' + } + } + greaterOrEquals: 1 + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + privateDnsZoneId: { + type: 'string' + } + privateEndpointName: { + type: 'string' + } + location: { + type: 'string' + } + } + resources: [ + { + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + apiVersion: '2020-03-01' + location: '[parameters(\'location\')]' + properties: { + privateDnsZoneConfigs: [ + { + name: 'storageQueue-privateDnsZone' + properties: { + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' + } + } + ] + } + } + ] + } + parameters: { + privateDnsZoneId: { + value: '[parameters(\'privateDnsZoneId\')]' + } + privateEndpointName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-DNSZoneGroup-For-Queue-PrivateEndpoint' + } + { + properties: { + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for SQL Private Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' + DisplayName: 'Deploy DNS Zone Group for SQL Private Endpoint' + Mode: 'Indexed' + Parameters: { + privateDnsZoneId: { + type: 'String' + metadata: { + displayName: 'privateDnsZoneId' + strongType: 'Microsoft.Network/privateDnsZones' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/privateEndpoints' + } + { + count: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + where: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + equals: 'sqlServer' + } + } + greaterOrEquals: 1 + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + privateDnsZoneId: { + type: 'string' + } + privateEndpointName: { + type: 'string' + } + location: { + type: 'string' + } + } + resources: [ + { + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + apiVersion: '2020-03-01' + location: '[parameters(\'location\')]' + properties: { + privateDnsZoneConfigs: [ + { + name: 'sqlServer-privateDnsZone' + properties: { + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' + } + } + ] + } + } + ] + } + parameters: { + privateDnsZoneId: { + value: '[parameters(\'privateDnsZoneId\')]' + } + privateEndpointName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-DNSZoneGroup-For-Sql-PrivateEndpoint' + } + { + properties: { + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Table Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' + DisplayName: 'Deploy DNS Zone Group for Storage-Table Private Endpoint' + Mode: 'Indexed' + Parameters: { + privateDnsZoneId: { + type: 'String' + metadata: { + displayName: 'privateDnsZoneId' + strongType: 'Microsoft.Network/privateDnsZones' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/privateEndpoints' + } + { + count: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + where: { + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' + equals: 'table' + } + } + greaterOrEquals: 1 + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + privateDnsZoneId: { + type: 'string' + } + privateEndpointName: { + type: 'string' + } + location: { + type: 'string' + } + } + resources: [ + { + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' + apiVersion: '2020-03-01' + location: '[parameters(\'location\')]' + properties: { + privateDnsZoneConfigs: [ + { + name: 'storageTable-privateDnsZone' + properties: { + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' + } + } + ] + } + } + ] + } + parameters: { + privateDnsZoneId: { + value: '[parameters(\'privateDnsZoneId\')]' + } + privateEndpointName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-DNSZoneGroup-For-Table-PrivateEndpoint' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Event Grid subscriptions to stream to a Log Analytics workspace when any Event Grid subscriptions which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Event Grid subscriptions to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.EventGrid/eventSubscriptions' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.EventGrid/eventSubscriptions/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-EventGridSub' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Event Grid Topic to stream to a Log Analytics workspace when any Event Grid Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Event Grid Topic to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.EventGrid/topics' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.EventGrid/topics/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'DeliveryFailures' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'PublishFailures' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-EventGridTopic' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Event Hubs to stream to a Log Analytics workspace when any Event Hubs which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Event Hubs to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.EventHub/namespaces' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.EventHub/namespaces/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'ArchiveLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'OperationalLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AutoScaleLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'KafkaCoordinatorLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'KafkaUserErrorLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'EventHubVNetConnectionEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'CustomerManagedKeyUserLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-EventHub' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Event Grid System Topic to stream to a Log Analytics workspace when any Event Grid System Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Event Grid System Topic to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.EventGrid/systemTopics' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.EventGrid/systemTopics/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'DeliveryFailures' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-EventGridSystemTopic' + } + { + properties: { + Description: 'Deploys the diagnostic settings for ExpressRoute to stream to a Log Analytics workspace when any ExpressRoute which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for ExpressRoute to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/expressRouteCircuits' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/expressRouteCircuits/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'PeeringRouteLog' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-ExpressRoute' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Firewall to stream to a Log Analytics workspace when any Firewall which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Firewall to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/azureFirewalls' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/azureFirewalls/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'AzureFirewallApplicationRule' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AzureFirewallNetworkRule' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AzureFirewallDnsProxy' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-Firewall' + } + { + properties: { + Description: 'Deploys Azure Firewall Manager policy in subscription where the policy is assigned.' + DisplayName: 'Deploy Azure Firewall Manager policy in the subscription' + Mode: 'Indexed' + Parameters: { + fwpolicy: { + type: 'Object' + metadata: { + displayName: 'fwpolicy' + description: 'Object describing Azure Firewall Policy' + } + defaultValue: {} + } + fwPolicyRegion: { + type: 'String' + metadata: { + displayName: 'fwPolicyRegion' + description: 'Select Azure region for Azure Firewall Policy' + strongType: 'location' + } + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/firewallPolicies' + deploymentScope: 'Subscription' + existenceScope: 'ResourceGroup' + resourceGroupName: '[parameters(\'rgName\')]' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' + ] + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + rgName: { + value: '[parameters(\'rgName\')]' + } + fwPolicy: { + value: '[parameters(\'fwPolicy\')]' + } + fwPolicyRegion: { + value: '[parameters(\'fwPolicyRegion\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + rgName: { + type: 'string' + } + fwPolicy: { + type: 'object' + } + fwPolicyRegion: { + type: 'string' + } + } + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2018-05-01' + name: '[parameters(\'rgName\')]' + location: '[deployment().location]' + properties: {} + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + name: 'fwpolicies' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Network/firewallPolicies' + apiVersion: '2019-09-01' + name: '[parameters(\'fwpolicy\').firewallPolicyName]' + location: '[parameters(\'fwpolicy\').location]' + dependsOn: [] + tags: {} + properties: {} + resources: [ + { + type: 'ruleGroups' + apiVersion: '2019-09-01' + name: '[parameters(\'fwpolicy\').ruleGroups.name]' + dependsOn: [ + '[resourceId(\'Microsoft.Network/firewallPolicies\',parameters(\'fwpolicy\').firewallPolicyName)]' + ] + properties: { + priority: '[parameters(\'fwpolicy\').ruleGroups.properties.priority]' + rules: '[parameters(\'fwpolicy\').ruleGroups.properties.rules]' + } + } + ] + } + ] + outputs: {} + } + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-FirewallPolicy' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Front Door to stream to a Log Analytics workspace when any Front Door which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Front Door to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/frontDoors' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/frontDoors/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'FrontdoorAccessLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'FrontdoorWebApplicationFirewallLog' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-FrontDoor' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Azure Function App to stream to a Log Analytics workspace when any function app which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Azure Function App to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Web/sites' + } + { + value: '[field(\'kind\')]' + notEquals: 'app' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Web/sites/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'FunctionAppLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-Function' + } + { + properties: { + Description: 'Deploys the diagnostic settings for HDInsight to stream to a Log Analytics workspace when any HDInsight which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for HDInsight to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.HDInsight/clusters' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.HDInsight/clusters/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-HDInsight' + } + { + properties: { + Description: 'Deploys the diagnostic settings for IoT Hub to stream to a Log Analytics workspace when any IoT Hub which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for IoT Hub to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Devices/IotHubs' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Devices/IotHubs/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Connections' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DeviceTelemetry' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'C2DCommands' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DeviceIdentityOperations' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'FileUploadOperations' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Routes' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'D2CTwinOperations' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'C2DTwinOperations' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'TwinQueries' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'JobsOperations' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DirectMethods' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DistributedTracing' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Configurations' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DeviceStreams' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-iotHub' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Key Vault to stream to a Log Analytics workspace when any Key Vault which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Key Vault to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.KeyVault/vaults' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + name: 'setByPolicy' + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.KeyVault/vaults/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'AuditEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-KeyVault' + } + { + properties: { + Description: 'This policy denies creation of Key Vaults with IP Firewall exposed to all public endpoints' + DisplayName: 'Public network access should be disabled for KeyVault' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Key Vault' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.KeyVault/vaults' + } + { + field: 'Microsoft.KeyVault/vaults/networkAcls.defaultAction' + notequals: 'Deny' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-KeyVault' + } + { + properties: { + Description: 'This policy enables you to ensure when a Key Vault is created with out soft delete enabled it will be added.' + DisplayName: 'KeyVault SoftDelete should be enabled' + Mode: 'Indexed' + Parameters: {} + metadata: { + version: '1.0.0' + category: 'Key Vault' + } + PolicyRule: { + if: { + anyOf: [ + { + allOf: [ + { + field: 'type' + equals: 'Microsoft.KeyVault/vaults' + } + { + field: 'Microsoft.KeyVault/vaults/enableSoftDelete' + notEquals: false + } + ] + } + ] + } + then: { + effect: 'append' + details: [ + { + field: 'Microsoft.KeyVault/vaults/enableSoftDelete' + value: true + } + ] + } + } + } + name: 'Append-KV-SoftDelete' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Load Balancer to stream to a Log Analytics workspace when any Load Balancer which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Load Balancer to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/loadBalancers' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/loadBalancers/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + timeGrain: null + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + logs: [ + { + category: 'LoadBalancerAlertEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'LoadBalancerProbeHealthStatus' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-LoadBalancer' + } + { + properties: { + Description: 'Deploy the configurations to the Log Analytics in the subscription. This includes a list of solutions like update, automation etc and enables the vminsight counters. ' + DisplayName: 'Deploy the configurations to the Log Analytics in the subscription' + Mode: 'Indexed' + Parameters: { + workspaceName: { + type: 'String' + metadata: { + displayName: 'workspaceName' + description: 'Provide name of existing Log Analytics workspace' + } + } + workspaceRegion: { + type: 'String' + metadata: { + displayName: 'workspaceRegion' + description: 'Select region of existing Log Analytics workspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.OperationalInsights/workspaces' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.OperationalInsights/workspaces' + deploymentScope: 'resourceGroup' + existenceScope: 'Subscription' + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + existenceCondition: { + allOf: [ + { + field: 'name' + like: '[parameters(\'workspaceName\')]' + } + { + field: 'location' + equals: '[parameters(\'workspaceRegion\')]' + } + ] + } + deployment: { + properties: { + mode: 'incremental' + parameters: { + workspaceName: { + value: '[parameters(\'workspaceName\')]' + } + workspaceRegion: { + value: '[parameters(\'workspaceRegion\')]' + } + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + workspaceName: { + type: 'string' + } + workspaceRegion: { + type: 'string' + } + } + variables: { + vmInsightsPerfCounters: { + windowsArray: [ + { + armName: 'counter1' + objectName: 'LogicalDisk' + counterName: '% Free Space' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter2' + objectName: 'LogicalDisk' + counterName: 'Avg. Disk sec/Read' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter3' + objectName: 'LogicalDisk' + counterName: 'Avg. Disk sec/Transfer' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter4' + objectName: 'LogicalDisk' + counterName: 'Avg. Disk sec/Write' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter5' + objectName: 'LogicalDisk' + counterName: 'Disk Read Bytes/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter6' + objectName: 'LogicalDisk' + counterName: 'Disk Reads/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter7' + objectName: 'LogicalDisk' + counterName: 'Disk Transfers/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter8' + objectName: 'LogicalDisk' + counterName: 'Disk Write Bytes/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter9' + objectName: 'LogicalDisk' + counterName: 'Disk Writes/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter10' + objectName: 'LogicalDisk' + counterName: 'Free Megabytes' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter11' + objectName: 'Memory' + counterName: 'Available MBytes' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter12' + objectName: 'Network Adapter' + counterName: 'Bytes Received/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter13' + objectName: 'Network Adapter' + counterName: 'Bytes Sent/sec' + instanceName: '*' + intervalSeconds: 10 + } + { + armName: 'counter14' + objectName: 'Processor' + counterName: '% Processor Time' + instanceName: '*' + intervalSeconds: 10 + } + ] + linuxDiskArray: [ + { + counterName: '% Used Inodes' + } + { + counterName: 'Free Megabytes' + } + { + counterName: '% Used Space' + } + { + counterName: 'Disk Transfers/sec' + } + { + counterName: 'Disk Reads/sec' + } + { + counterName: 'Disk writes/sec' + } + ] + linuxDiskObject: { + armResourceName: 'Disk' + objectName: 'Logical Disk' + instanceName: '*' + intervalSeconds: 10 + } + linuxMemoryArray: [ + { + counterName: 'Available MBytes Memory' + } + ] + linuxMemoryObject: { + armResourceName: 'Memory' + objectName: 'Memory' + instanceName: '*' + intervalSeconds: 10 + } + linuxNetworkArray: [ + { + counterName: 'Total Bytes Received' + } + { + counterName: 'Total Bytes Transmitted' + } + ] + linuxNetworkObject: { + armResourceName: 'Network' + objectName: 'Network' + instanceName: '*' + intervalSeconds: 10 + } + linuxCpuArray: [ + { + counterName: '% Processor Time' + } + ] + linuxCpuObject: { + armResourceName: 'Processor' + objectName: 'Processor' + instanceName: '*' + intervalSeconds: 10 + } + } + batch1: { + solutions: [ + { + name: '[concat(\'Security\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'Security' + } + { + name: '[concat(\'AgentHealthAssessment\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'AgentHealthAssessment' + } + { + name: '[concat(\'ChangeTracking\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'ChangeTracking' + } + { + name: '[concat(\'Updates\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'Updates' + } + { + name: '[concat(\'AzureActivity\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'AzureActivity' + } + { + name: '[concat(\'AzureAutomation\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'AzureAutomation' + } + { + name: '[concat(\'ADAssessment\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'ADAssessment' + } + { + name: '[concat(\'SQLAssessment\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'SQLAssessment' + } + { + name: '[concat(\'VMInsights\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'VMInsights' + } + { + name: '[concat(\'ServiceMap\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'ServiceMap' + } + { + name: '[concat(\'SecurityInsights\', \'(\', parameters(\'workspaceName\'), \')\')]' + marketplaceName: 'SecurityInsights' + } + ] + } + } + resources: [ + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationalInsights/workspaces/datasources' + name: '[concat(parameters(\'workspaceName\'), \'/LinuxPerfCollection\')]' + kind: 'LinuxPerformanceCollection' + properties: { + state: 'Enabled' + } + } + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationalInsights/workspaces/dataSources' + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxDiskObject.armResourceName)]' + kind: 'LinuxPerformanceObject' + properties: { + performanceCounters: '[variables(\'vmInsightsPerfCounters\').linuxDiskArray]' + objectName: '[variables(\'vmInsightsPerfCounters\').linuxDiskObject.objectName]' + instanceName: '[variables(\'vmInsightsPerfCounters\').linuxDiskObject.instanceName]' + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').linuxDiskObject.intervalSeconds]' + } + } + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationalInsights/workspaces/dataSources' + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxMemoryObject.armResourceName)]' + kind: 'LinuxPerformanceObject' + properties: { + performanceCounters: '[variables(\'vmInsightsPerfCounters\').linuxMemoryArray]' + objectName: '[variables(\'vmInsightsPerfCounters\').linuxMemoryObject.objectName]' + instanceName: '[variables(\'vmInsightsPerfCounters\').linuxMemoryObject.instanceName]' + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').linuxMemoryObject.intervalSeconds]' + } + } + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationalInsights/workspaces/dataSources' + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxCpuObject.armResourceName)]' + kind: 'LinuxPerformanceObject' + properties: { + performanceCounters: '[variables(\'vmInsightsPerfCounters\').linuxCpuArray]' + objectName: '[variables(\'vmInsightsPerfCounters\').linuxCpuObject.objectName]' + instanceName: '[variables(\'vmInsightsPerfCounters\').linuxCpuObject.instanceName]' + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').linuxCpuObject.intervalSeconds]' + } + } + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationalInsights/workspaces/dataSources' + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxNetworkObject.armResourceName)]' + kind: 'LinuxPerformanceObject' + properties: { + performanceCounters: '[variables(\'vmInsightsPerfCounters\').linuxNetworkArray]' + objectName: '[variables(\'vmInsightsPerfCounters\').linuxNetworkObject.objectName]' + instanceName: '[variables(\'vmInsightsPerfCounters\').linuxNetworkObject.instanceName]' + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').linuxNetworkObject.intervalSeconds]' + } + } + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationalInsights/workspaces/dataSources' + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].armName)]' + kind: 'WindowsPerformanceCounter' + copy: { + name: 'counterCopy' + count: '[length(variables(\'vmInsightsPerfCounters\').windowsArray)]' + } + properties: { + objectName: '[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].objectName]' + instanceName: '[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].instanceName]' + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].intervalSeconds]' + counterName: '[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].counterName]' + } + } + { + apiVersion: '2015-11-01-preview' + type: 'Microsoft.OperationsManagement/solutions' + name: '[concat(variables(\'batch1\').solutions[copyIndex()].Name)]' + location: '[parameters(\'workspaceRegion\')]' + copy: { + name: 'solutionCopy' + count: '[length(variables(\'batch1\').solutions)]' + } + properties: { + workspaceResourceId: '[resourceId(\'Microsoft.OperationalInsights/workspaces/\', parameters(\'workspaceName\'))]' + } + plan: { + name: '[variables(\'batch1\').solutions[copyIndex()].name]' + product: '[concat(\'OMSGallery/\', variables(\'batch1\').solutions[copyIndex()].marketplaceName)]' + promotionCode: '' + publisher: 'Microsoft' + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-LA-Config' + } + { + properties: { + Description: 'Deploys Log Analytics and Automation account to the subscription where the policy is assigned.' + DisplayName: 'Deploy the Log Analytics in the subscription' + Mode: 'Indexed' + Parameters: { + workspaceName: { + type: 'String' + metadata: { + displayName: 'workspaceName' + description: 'Provide name for log analytics workspace' + } + } + automationAccountName: { + type: 'String' + metadata: { + displayName: 'automationAccountName' + description: 'Provide name for automation account' + } + } + workspaceRegion: { + type: 'String' + metadata: { + displayName: 'workspaceRegion' + description: 'Select Azure region for Log Analytics' + } + } + automationRegion: { + type: 'String' + metadata: { + displayName: 'automationRegion' + description: 'Select Azure region for Automation account' + } + } + retentionInDays: { + type: 'string' + defaultValue: '30' + metadata: { + displayName: 'Data retention' + description: 'Select data retention (days) for Log Analytics.' + } + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.OperationalInsights/workspaces' + deploymentScope: 'Subscription' + existenceScope: 'Subscription' + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + existenceCondition: { + allOf: [ + { + field: 'name' + like: '[parameters(\'workspaceName\')]' + } + ] + } + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + rgName: { + value: '[parameters(\'rgName\')]' + } + retentionInDays: { + value: '[parameters(\'retentionInDays\')]' + } + workspaceName: { + value: '[parameters(\'workspaceName\')]' + } + workspaceRegion: { + value: '[parameters(\'workspaceRegion\')]' + } + automationAccountName: { + value: '[parameters(\'automationAccountName\')]' + } + automationRegion: { + value: '[parameters(\'automationRegion\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + rgName: { + type: 'string' + } + workspaceName: { + type: 'string' + } + workspaceRegion: { + type: 'string' + } + automationAccountName: { + type: 'string' + } + automationRegion: { + type: 'string' + } + retentionInDays: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2018-05-01' + name: '[parameters(\'rgName\')]' + location: '[deployment().location]' + properties: {} + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + name: 'log-analytics' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + apiversion: '2015-10-31' + location: '[parameters(\'AutomationRegion\')]' + name: '[parameters(\'AutomationAccountName\')]' + type: 'Microsoft.Automation/automationAccounts' + comments: 'Automation account for ' + properties: { + sku: { + name: 'OMS' + } + } + } + { + apiVersion: '2017-03-15-preview' + location: '[parameters(\'workspaceRegion\')]' + name: '[parameters(\'workspaceName\')]' + type: 'Microsoft.OperationalInsights/workspaces' + properties: { + sku: { + name: 'pernode' + } + enableLogAccessUsingOnlyResourcePermissions: true + retentionInDays: '[int(parameters(\'retentionInDays\'))]' + } + resources: [ + { + name: 'Automation' + type: 'linkedServices' + apiVersion: '2015-11-01-preview' + dependsOn: [ + '[resourceId(\'Microsoft.OperationalInsights/workspaces/\', parameters(\'workspaceName\'))]' + '[resourceId(\'Microsoft.Automation/automationAccounts/\', parameters(\'AutomationAccountName\'))]' + ] + properties: { + resourceId: '[concat(subscription().id, \'/resourceGroups/\', parameters(\'rgName\'), \'/providers/Microsoft.Automation/automationAccounts/\', parameters(\'AutomationAccountName\'))]' + } + } + ] + } + ] + outputs: {} + } + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-Log-Analytics' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Logic Apps integration service environment to stream to a Log Analytics workspace when any Logic Apps integration service environment which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Logic Apps integration service environment to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Logic/integrationAccounts' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Logic/integrationAccounts/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [] + logs: [ + { + category: 'IntegrationAccountTrackingEvents' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-LogicAppsISE' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Logic Apps Workflow runtimeto stream to a Log Analytics workspace when any Logic Apps Workflow runtime which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Logic Apps Workflow runtime to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Logic/workflows' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Logic/workflows/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'WorkflowRuntime' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-LogicAppsWF' + } + { + properties: { + Description: 'Deploys the diagnostic settings for MariaDB to stream to a Log Analytics workspace when any MariaDB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for MariaDB to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DBforMariaDB/servers' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DBforMariaDB/servers/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'MySqlSlowLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'MySqlAuditLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-MariaDB' + } + { + properties: { + Description: 'This policy denies the creation of Maria DB accounts with exposed public endpoints' + DisplayName: 'Public network access should be disabled for MariaDB' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.DBforMariaDB/servers' + } + { + field: 'Microsoft.DBforMariaDB/servers/publicNetworkAccess' + notequals: 'Disabled' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-MariaDB' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Machine Learning workspace to stream to a Log Analytics workspace when any Machine Learning workspace which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Machine Learning workspace to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.MachineLearningServices/workspaces' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.MachineLearningServices/workspaces/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'Run' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + { + category: 'Model' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: true + } + } + { + category: 'Quota' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + { + category: 'Resource' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'AmlComputeClusterEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AmlComputeClusterNodeEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AmlComputeJobEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AmlComputeCpuGpuUtilization' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AmlRunStatusChangedEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-MlWorkspace' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Database for MySQL to stream to a Log Analytics workspace when any Database for MySQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Database for MySQL to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DBforMySQL/servers' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DBforMySQL/servers/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'MySqlSlowLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'MySqlAuditLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-MySQL' + } + { + properties: { + Description: 'This policy denies creation of MySql DB accounts with exposed public endpoints' + DisplayName: 'Public network access should be disabled for MySQL' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.DBforMySQL/servers' + } + { + field: 'Microsoft.DBforMySQL/servers/publicNetworkAccess' + notequals: 'Disabled' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-MySQL' + } + { + properties: { + Description: 'Deploys an Azure DDoS Protection Standard plan' + DisplayName: 'Deploy an Azure DDoS Protection Standard plan' + Mode: 'Indexed' + Parameters: { + ddosName: { + type: 'String' + metadata: { + displayName: 'ddosName' + description: 'Name of the Virtual WAN' + } + } + ddosRegion: { + type: 'String' + metadata: { + displayName: 'ddosRegion' + description: 'Select Azure region for Virtual WAN' + strongType: 'location' + } + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/ddosProtectionPlans' + deploymentScope: 'Subscription' + existenceScope: 'ResourceGroup' + resourceGroupName: '[parameters(\'rgName\')]' + name: '[parameters(\'ddosName\')]' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + rgName: { + value: '[parameters(\'rgName\')]' + } + ddosname: { + value: '[parameters(\'ddosname\')]' + } + ddosregion: { + value: '[parameters(\'ddosRegion\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + rgName: { + type: 'string' + } + ddosname: { + type: 'string' + } + ddosRegion: { + type: 'string' + } + } + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2018-05-01' + name: '[parameters(\'rgName\')]' + location: '[deployment().location]' + properties: {} + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + name: 'ddosprotection' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: {} + resources: [ + { + type: 'Microsoft.Network/ddosProtectionPlans' + apiVersion: '2019-12-01' + name: '[parameters(\'ddosName\')]' + location: '[parameters(\'ddosRegion\')]' + properties: {} + } + ] + outputs: {} + } + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-DDoSProtection' + } + { + properties: { + Description: 'This policy denies the creation of vNet Peerings under the assigned scope.' + DisplayName: 'Deny vNet peering ' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-VNet-Peering' + } + { + properties: { + Description: 'This policy denies the creation of a private DNS in the current scope, used in combination with policies that create centralized private DNS in connectivity subscription' + DisplayName: 'Deny the creation of private DNS' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/privateDnsZones' + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-Private-DNS-Zones' + } + { + properties: { + Description: 'This policy denies creation of Public IPs under the assigned scope.' + DisplayName: 'Deny the creation of public IP' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/publicIPAddresses' + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicIP' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Network Interfaces to stream to a Log Analytics workspace when any Network Interfaces which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Network Interfaces to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/networkInterfaces' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/networkInterfaces/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + timeGrain: null + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-NIC' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Public IP addresses to stream to a Log Analytics workspace when any Public IP addresses which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Public IP addresses to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/publicIPAddresses' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/publicIPAddresses/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + timeGrain: null + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + logs: [ + { + category: 'DDoSProtectionNotifications' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DDoSMitigationFlowLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DDoSMitigationReports' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-PublicIP' + } + { + properties: { + Description: 'Deploys NSG flow logs and traffic analytics to a storageaccountid with a specfied retention period.' + DisplayName: 'Deploys NSG flow logs and traffic analytics' + Mode: 'Indexed' + Parameters: { + retention: { + type: 'Integer' + metadata: { + displayName: 'Retention' + } + defaultValue: 5 + } + storageAccountResourceId: { + type: 'String' + metadata: { + displayName: 'Storage Account Resource Id' + strongType: 'Microsoft.Storage/storageAccounts' + } + } + trafficAnalyticsInterval: { + type: 'Integer' + metadata: { + displayName: 'Traffic Analytics processing interval mins (10/60)' + } + defaultValue: 60 + } + flowAnalyticsEnabled: { + type: 'Boolean' + metadata: { + displayName: 'Enable Traffic Analytics' + } + defaultValue: false + } + logAnalytics: { + type: 'String' + metadata: { + strongType: 'omsWorkspace' + displayName: 'Resource ID of Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + } + defaultValue: '' + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/networkSecurityGroups' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/networkWatchers/flowLogs' + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + resourceGroupName: 'NetworkWatcherRG' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Network/networkWatchers/flowLogs/enabled' + equals: 'true' + } + { + field: 'Microsoft.Network/networkWatchers/flowLogs/flowAnalyticsConfiguration.networkWatcherFlowAnalyticsConfiguration.enabled' + equals: '[parameters(\'flowAnalyticsEnabled\')]' + } + ] + } + deployment: { + properties: { + mode: 'incremental' + parameters: { + networkSecurityGroupName: { + value: '[field(\'name\')]' + } + resourceGroupName: { + value: '[resourceGroup().name]' + } + location: { + value: '[field(\'location\')]' + } + storageAccountResourceId: { + value: '[parameters(\'storageAccountResourceId\')]' + } + retention: { + value: '[parameters(\'retention\')]' + } + flowAnalyticsEnabled: { + value: '[parameters(\'flowAnalyticsEnabled\')]' + } + trafficAnalyticsInterval: { + value: '[parameters(\'trafficAnalyticsInterval\')]' + } + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + networkSecurityGroupName: { + type: 'string' + } + resourceGroupName: { + type: 'string' + } + location: { + type: 'string' + } + storageAccountResourceId: { + type: 'string' + } + retention: { + type: 'int' + } + flowAnalyticsEnabled: { + type: 'bool' + } + trafficAnalyticsInterval: { + type: 'int' + } + logAnalytics: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/networkWatchers/flowLogs' + apiVersion: '2020-05-01' + name: '[take(concat(\'NetworkWatcher_\', toLower(parameters(\'location\')), \'/\', parameters(\'networkSecurityGroupName\'), \'-\', parameters(\'resourceGroupName\'), \'-flowlog\' ), 80)]' + location: '[parameters(\'location\')]' + properties: { + targetResourceId: '[resourceId(parameters(\'resourceGroupName\'), \'Microsoft.Network/networkSecurityGroups\', parameters(\'networkSecurityGroupName\'))]' + storageId: '[parameters(\'storageAccountResourceId\')]' + enabled: true + retentionPolicy: { + enabled: true + days: '[parameters(\'retention\')]' + } + format: { + type: 'JSON' + version: 2 + } + flowAnalyticsConfiguration: { + networkWatcherFlowAnalyticsConfiguration: { + enabled: '[bool(parameters(\'flowAnalyticsEnabled\'))]' + trafficAnalyticsInterval: '[parameters(\'trafficAnalyticsInterval\')]' + workspaceId: '[if(not(empty(parameters(\'logAnalytics\'))), reference(parameters(\'logAnalytics\'), \'2020-03-01-preview\', \'Full\').properties.customerId, json(\'null\')) ]' + workspaceRegion: '[if(not(empty(parameters(\'logAnalytics\'))), reference(parameters(\'logAnalytics\'), \'2020-03-01-preview\', \'Full\').location, json(\'null\')) ]' + workspaceResourceId: '[if(not(empty(parameters(\'logAnalytics\'))), parameters(\'logAnalytics\'), json(\'null\'))]' + } + } + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-Nsg-FlowLogs' + } + { + properties: { + Description: 'This policy denies the creation of a subsnet with out an Network Security Group. NSG help to protect traffic across subnet-level.' + DisplayName: 'Subnets should have a Network Security Group ' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/virtualNetworks/subnets' + } + { + field: 'Microsoft.Network/virtualNetworks/subnets/networkSecurityGroup.id' + exists: 'false' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-Subnet-Without-Nsg' + } + { + properties: { + displayName: 'Subnets should have a User Defined Route' + policyType: 'Custom' + mode: 'Indexed' + description: 'This policy denies the creation of a subsnet with out a User Defined Route.' + metadata: { + version: '1.0.0' + category: 'Network' + } + parameters: { + effect: { + type: 'String' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + } + } + policyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/virtualNetworks/subnets' + } + { + field: 'Microsoft.Network/virtualNetworks/subnets/routeTable.id' + exists: 'false' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-Subnet-Without-Udr' + } + { + Properties: { + Description: 'This policy denies the creation of vNet Peerings outside of the same subscriptions under the assigned scope.' + DisplayName: 'Deny vNet peering cross subscription.' + Mode: 'Indexed' + metadata: { + version: '1.0.0.0' + category: 'Network' + } + Parameters: { + effect: { + type: 'String' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + } + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' + } + { + field: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings/remoteVirtualNetwork.id' + notcontains: '[subscription().id]' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-VNET-Peer-Cross-Sub' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Network Security Groups to stream to a Log Analytics workspace when any Network Security Groups which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Network Security Groups to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/networkSecurityGroups' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/networkSecurityGroups/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [] + logs: [ + { + category: 'NetworkSecurityGroupEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'NetworkSecurityGroupRuleCounter' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-NetworkSecurityGroups' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Database for PostgreSQL to stream to a Log Analytics workspace when any Database for PostgreSQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Database for PostgreSQL to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.DBforPostgreSQL/servers' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.DBforPostgreSQL/servers/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'PostgreSQLLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'QueryStoreRuntimeStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'QueryStoreWaitStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-PostgreSQL' + } + { + properties: { + Description: 'This policy denies creation of Postgre SQL DB accounts with exposed public endpoints' + DisplayName: 'Public network access should be disabled for PostgreSql' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.DBforPostgreSQL/servers' + } + { + field: 'Microsoft.DBforPostgreSQL/servers/publicNetworkAccess' + notequals: 'Disabled' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-PostgreSql' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Power BI Embedded to stream to a Log Analytics workspace when any Power BI Embedded which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Power BI Embedded to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.PowerBIDedicated/capacities' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.PowerBIDedicated/capacities/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Engine' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-PowerBIEmbedded' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Recovery Services vaults to stream to a Log Analytics workspace when any Recovery Services vaults which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Recovery Services vaults to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.RecoveryServices/vaults' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allof: [ + { + count: { + field: 'Microsoft.Insights/diagnosticSettings/logs[*]' + where: { + allof: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs[*].Category' + in: [ + 'CoreAzureBackup' + 'AddonAzureBackupJobs' + 'AddonAzureBackupAlerts' + 'AddonAzureBackupPolicy' + 'AddonAzureBackupStorage' + 'AddonAzureBackupProtectedInstance' + 'AzureBackupReport' + ] + } + { + field: 'Microsoft.Insights/diagnosticSettings/logs[*].Enabled' + equals: 'True' + } + ] + } + } + Equals: 7 + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + { + field: 'Microsoft.Insights/diagnosticSettings/logAnalyticsDestinationType' + equals: 'Dedicated' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.RecoveryServices/vaults/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + logAnalyticsDestinationType: 'Dedicated' + metrics: [] + logs: [ + { + category: 'CoreAzureBackup' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AddonAzureBackupAlerts' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AddonAzureBackupJobs' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AddonAzureBackupPolicy' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AddonAzureBackupProtectedInstance' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AddonAzureBackupStorage' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AzureBackupReport' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-RecoveryVault' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Redis Cache to stream to a Log Analytics workspace when any Redis Cache which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Redis Cache to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Cache/redis' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Cache/redis/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-RedisCache' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Relay to stream to a Log Analytics workspace when any Relay which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Relay to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Relay/namespaces' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Relay/namespaces/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'HybridConnectionsEvent' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-Relay' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Search Services to stream to a Log Analytics workspace when any Search Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Search Services to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Search/searchServices' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Search/searchServices/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'OperationLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-SearchServices' + } + { + properties: { + Description: 'Deploys the diagnostic settings for ServiceBus to stream to a Log Analytics workspace when any ServiceBus which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Service Bus namespaces to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.ServiceBus/namespaces' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.ServiceBus/namespaces/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'OperationalLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-ServiceBus' + } + { + properties: { + Description: 'Deploys the diagnostic settings for SignalR to stream to a Log Analytics workspace when any SignalR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for SignalR to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.SignalRService/SignalR' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.SignalRService/SignalR/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'AllLogs' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-SignalR' + } + { + properties: { + Description: 'Deploy auditing settings to SQL Database when it not exist in the deployment' + DisplayName: 'Deploy SQL database auditing settings' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/servers/databases' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Sql/servers/databases/auditingSettings' + name: 'default' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Sql/servers/databases/auditingSettings/state' + equals: 'enabled' + } + { + field: 'Microsoft.Sql/servers/databases/auditingSettings/isAzureMonitorTargetEnabled' + equals: 'true' + } + ] + } + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + location: { + type: 'string' + } + sqlServerName: { + type: 'string' + } + sqlServerDataBaseName: { + type: 'string' + } + } + variables: {} + resources: [ + { + name: '[concat( parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/default\')]' + type: 'Microsoft.Sql/servers/databases/auditingSettings' + apiVersion: '2017-03-01-preview' + properties: { + state: 'enabled' + auditActionsAndGroups: [ + 'BATCH_COMPLETED_GROUP' + 'DATABASE_OBJECT_CHANGE_GROUP' + 'SCHEMA_OBJECT_CHANGE_GROUP' + 'BACKUP_RESTORE_GROUP' + 'APPLICATION_ROLE_CHANGE_PASSWORD_GROUP' + 'DATABASE_PRINCIPAL_CHANGE_GROUP' + 'DATABASE_PRINCIPAL_IMPERSONATION_GROUP' + 'DATABASE_ROLE_MEMBER_CHANGE_GROUP' + 'USER_CHANGE_PASSWORD_GROUP' + 'DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP' + 'DATABASE_OBJECT_PERMISSION_CHANGE_GROUP' + 'DATABASE_PERMISSION_CHANGE_GROUP' + 'SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP' + 'SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP' + 'FAILED_DATABASE_AUTHENTICATION_GROUP' + ] + isAzureMonitorTargetEnabled: true + } + } + ] + outputs: {} + } + parameters: { + location: { + value: '[field(\'location\')]' + } + sqlServerName: { + value: '[first(split(field(\'fullname\'),\'/\'))]' + } + sqlServerDataBaseName: { + value: '[field(\'name\')]' + } + } + } + } + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3' + ] + } + } + } + } + name: 'Deploy-Sql-AuditingSettings' + } + { + properties: { + Description: 'Deploy the Transparent Data Encryption when it is not enabled in the deployment' + DisplayName: 'Deploy SQL Database Transparent Data Encryption ' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/servers/databases' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Sql/servers/databases/transparentDataEncryption' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Sql/transparentDataEncryption.status' + equals: 'Enabled' + } + ] + } + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + location: { + type: 'string' + } + sqlServerName: { + type: 'string' + } + sqlServerDataBaseName: { + type: 'string' + } + } + variables: {} + resources: [ + { + name: '[concat( parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/current\')]' + type: 'Microsoft.Sql/servers/databases/transparentDataEncryption' + apiVersion: '2014-04-01' + properties: { + status: 'Enabled' + } + } + ] + outputs: {} + } + parameters: { + location: { + value: '[field(\'location\')]' + } + sqlServerName: { + value: '[first(split(field(\'fullname\'),\'/\'))]' + } + sqlServerDataBaseName: { + value: '[field(\'name\')]' + } + } + } + } + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3' + ] + } + } + } + } + name: 'Deploy-Sql-Tde' + } + { + properties: { + Description: 'Deploy the security Alert Policies configuration with email admin accounts when it not exist in current configuration' + DisplayName: 'Deploy SQL Database security Alert Policies configuration with email admin accounts' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/servers/databases' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Sql/servers/databases/securityAlertPolicies' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Sql/servers/databases/securityAlertPolicies/state' + equals: 'Enabled' + } + ] + } + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + location: { + type: 'string' + } + sqlServerName: { + type: 'string' + } + sqlServerDataBaseName: { + type: 'string' + } + } + variables: {} + resources: [ + { + name: '[concat(parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/default\')]' + type: 'Microsoft.Sql/servers/databases/securityAlertPolicies' + apiVersion: '2018-06-01-preview' + properties: { + state: 'Enabled' + disabledAlerts: [ + '' + ] + emailAddresses: [ + 'admin@contoso.com' + ] + emailAccountAdmins: true + storageEndpoint: null + storageAccountAccessKey: '' + retentionDays: 0 + } + } + ] + outputs: {} + } + parameters: { + location: { + value: '[field(\'location\')]' + } + sqlServerName: { + value: '[first(split(field(\'fullname\'),\'/\'))]' + } + sqlServerDataBaseName: { + value: '[field(\'name\')]' + } + } + } + } + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3' + ] + } + } + } + } + name: 'Deploy-Sql-SecurityAlertPolicies' + } + { + properties: { + Description: 'Deploy SQL Database vulnerability Assessments when it not exist in the deployment. To the specific storage account in the parameters' + DisplayName: 'Deploy SQL Database vulnerability Assessments' + Mode: 'Indexed' + Parameters: { + vulnerabilityAssessmentsEmail: { + type: 'String' + metadata: { + description: 'The email address to send alerts' + displayName: 'The email address to send alerts' + } + } + vulnerabilityAssessmentsStorageID: { + type: 'String' + metadata: { + description: 'The storage account to store assessments' + displayName: 'The storage account to store assessments' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/servers/databases' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Sql/servers/databases/vulnerabilityAssessments' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Sql/servers/databases/vulnerabilityAssessments/recurringScans.emails' + equals: '[parameters(\'vulnerabilityAssessmentsEmail\')]' + } + { + field: 'Microsoft.Sql/servers/databases/vulnerabilityAssessments/recurringScans.isEnabled' + equals: true + } + ] + } + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + location: { + type: 'string' + } + sqlServerName: { + type: 'string' + } + sqlServerDataBaseName: { + type: 'string' + } + vulnerabilityAssessmentsEmail: { + type: 'string' + } + vulnerabilityAssessmentsStorageID: { + type: 'string' + } + } + variables: {} + resources: [ + { + name: '[concat(parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/default\')]' + type: 'Microsoft.Sql/servers/databases/vulnerabilityAssessments' + apiVersion: '2017-03-01-preview' + properties: { + storageContainerPath: '[concat(\'https://\', last( split(parameters(\'vulnerabilityAssessmentsStorageID\') , \'/\') ) , \'.blob.core.windows.net/vulneraabilitylogs\')]' + storageAccountAccessKey: '[listkeys(parameters(\'vulnerabilityAssessmentsStorageID\'), providers(\'Microsoft.Storage\', \'storageAccounts\').apiVersions[0]).keys[0].value]' + recurringScans: { + isEnabled: true + emailSubscriptionAdmins: false + emails: [ + '[parameters(\'vulnerabilityAssessmentsEmail\')]' + ] + } + } + } + ] + outputs: {} + } + parameters: { + location: { + value: '[field(\'location\')]' + } + sqlServerName: { + value: '[first(split(field(\'fullname\'),\'/\'))]' + } + sqlServerDataBaseName: { + value: '[field(\'name\')]' + } + vulnerabilityAssessmentsEmail: { + value: '[parameters(\'vulnerabilityAssessmentsEmail\')]' + } + vulnerabilityAssessmentsStorageID: { + value: '[parameters(\'vulnerabilityAssessmentsStorageID\')]' + } + } + } + } + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3' + '/providers/Microsoft.Authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + ] + } + } + } + } + name: 'Deploy-Sql-vulnerabilityAssessments' + } + { + properties: { + Description: 'Deploys the diagnostic settings for SQL Databases to stream to a Log Analytics workspace when any SQL Databases which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for SQL Databases to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/servers/databases' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Sql/servers/databases/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'SQLInsights' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'AutomaticTuning' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DevOpsOperationsAudit' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'QueryStoreRuntimeStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'QueryStoreWaitStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Errors' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DatabaseWaitStatistics' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Timeouts' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Blocks' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Deadlocks' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SQLSecurityAuditEvents' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'fullName\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-SQLDBs' + } + { + properties: { + Description: 'Deploys the diagnostic settings for SQL Elastic Pools to stream to a Log Analytics workspace when any SQL Elastic Pools which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for SQL Elastic Pools to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/servers/elasticPools' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Sql/servers/elasticPools/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'fullName\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-SQLElasticPools' + } + { + properties: { + Description: 'Deploys the diagnostic settings for SQL Managed Instances to stream to a Log Analytics workspace when any SQL Managed Instances which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for SQL Managed Instances to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Sql/managedInstances' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Sql/managedInstances/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + logs: [ + { + category: 'ResourceUsageStats' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'SQLSecurityAuditEvents' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'DevOpsOperationsAudit' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-SQLMI' + } + { + properties: { + Description: 'This policy denies creation of Sql servers with exposed public endpoints' + DisplayName: 'Public network access on Azure SQL Database should be disabled' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Sql/servers' + } + { + field: 'Microsoft.Sql/servers/publicNetworkAccess' + notequals: 'Disabled' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-Sql' + } + { + properties: { + Description: 'This policy denies creation of storage accounts with IP Firewall exposed to all public endpoints' + DisplayName: 'Public network access onStorage accounts should be disabled' + Mode: 'Indexed' + Parameters: { + effect: { + type: 'String' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + defaultValue: 'Deny' + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Storage' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Storage/storageAccounts' + } + { + field: 'Microsoft.Storage/storageAccounts/networkAcls.defaultAction' + notequals: 'Deny' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + } + } + } + name: 'Deny-PublicEndpoint-Storage' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Stream Analytics to stream to a Log Analytics workspace when any Stream Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Stream Analytics to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.StreamAnalytics/streamingjobs' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.StreamAnalytics/streamingjobs/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Execution' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Authoring' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-StreamAnalytics' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Time Series Insights to stream to a Log Analytics workspace when any Time Series Insights which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Time Series Insights to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.TimeSeriesInsights/environments' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.TimeSeriesInsights/environments/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'Ingress' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'Management' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-TimeSeriesInsights' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Traffic Manager to stream to a Log Analytics workspace when any Traffic Manager which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Traffic Manager to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/trafficManagerProfiles' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/trafficManagerProfiles/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'ProbeHealthStatusEvents' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-TrafficManager' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Virtual Machines to stream to a Log Analytics workspace when any Virtual Machines which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Virtual Machines to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Compute/virtualMachines' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Compute/virtualMachines/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-VM' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Virtual Network to stream to a Log Analytics workspace when any Virtual Network which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Virtual Network to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/virtualNetworks' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualNetworks/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + logs: [ + { + category: 'VMProtectionAlerts' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-VirtualNetwork' + } + { + properties: { + Description: 'Deploys Virtual Network to be used as hub virtual network in desired region in the subscription where this policy is assigned.' + DisplayName: 'Deploy Virtual Network to be used as hub virtual network in desired region' + Mode: 'Indexed' + Parameters: { + hubName: { + type: 'String' + metadata: { + displayName: 'hubName' + description: 'Name of the Hub' + } + } + HUB: { + type: 'Object' + metadata: { + displayName: 'HUB' + description: 'Object describing HUB' + } + } + vpngw: { + type: 'Object' + metadata: { + displayName: 'vpngw' + description: 'Object describing VPN gateway' + } + defaultValue: {} + } + ergw: { + type: 'Object' + metadata: { + displayName: 'ergw' + description: 'Object describing ExpressRoute gateway' + } + defaultValue: {} + } + azfw: { + type: 'Object' + metadata: { + displayName: 'ergw' + description: 'Object describing ExpressRoute gateway' + } + defaultValue: {} + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/virtualNetworks' + name: '[parameters(\'hubName\')]' + deploymentScope: 'Subscription' + existenceScope: 'ResourceGroup' + ResourceGroupName: '[parameters(\'rgName\')]' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + rgName: { + value: '[parameters(\'rgName\')]' + } + hubName: { + value: '[parameters(\'hubName\')]' + } + HUB: { + value: '[parameters(\'HUB\')]' + } + vpngw: { + value: '[parameters(\'vpngw\')]' + } + ergw: { + value: '[parameters(\'ergw\')]' + } + azfw: { + value: '[parameters(\'azfw\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + hubName: { + type: 'string' + metadata: { + description: 'Name of the HUB' + } + } + HUB: { + type: 'object' + metadata: { + description: 'Object describing HUB' + } + } + vpngw: { + type: 'object' + defaultValue: {} + metadata: { + description: 'Object describing VPN gateway' + } + } + ergw: { + type: 'object' + defaultValue: {} + metadata: { + description: 'Object describing ExpressRoute gateway' + } + } + azfw: { + type: 'object' + defaultValue: {} + metadata: { + description: 'Object describing the Azure Firewall' + } + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2020-06-01' + name: '[parameters(\'rgName\')]' + location: '[deployment().location]' + properties: {} + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https: //schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + name: '[parameters(\'hubName\')]' + type: 'Microsoft.Network/virtualNetworks' + apiVersion: '2020-04-01' + location: '[parameters(\'HUB\').location]' + properties: { + addressSpace: { + addressPrefixes: [ + '[parameters(\'HUB\').addressPrefix]' + ] + } + subnets: [ + { + name: 'Infrastructure' + properties: { + addressPrefix: '[if(not(empty(parameters(\'HUB\').subnets.infra)),parameters(\'HUB\').subnets.infra, json(\'null\'))]' + } + } + { + name: 'AzureFirewallSubnet' + properties: { + addressPrefix: '[if(not(empty(parameters(\'HUB\').subnets.azfw)),parameters(\'HUB\').subnets.azfw, json(\'null\'))]' + } + } + { + name: 'GatewaySubnet' + properties: { + addressPrefix: '[if(not(empty(parameters(\'HUB\').subnets.gw)),parameters(\'HUB\').subnets.gw, json(\'null\'))]' + } + } + ] + } + } + ] + } + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + condition: '[greater(length(parameters(\'vpngw\')),0)]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]' + ] + name: '[concat(parameters(\'hubName\'),\'-vpngw\')]' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + apiVersion: '2020-05-01' + type: 'Microsoft.Network/publicIpAddresses' + location: '[parameters(\'HUB\').location]' + name: '[concat(parameters(\'vpngw\').name,\'-pip\')]' + properties: { + publicIPAllocationMethod: 'Dynamic' + } + tags: {} + } + { + apiVersion: '2020-05-01' + name: '[parameters(\'vpngw\').name]' + type: 'Microsoft.Network/virtualNetworkGateways' + location: '[parameters(\'HUB\').location]' + dependsOn: [ + '[concat(\'Microsoft.Network/publicIPAddresses/\', parameters(\'vpngw\').name,\'-pip\')]' + ] + tags: {} + properties: { + gatewayType: 'Vpn' + vpnType: '[parameters(\'vpngw\').vpnType]' + ipConfigurations: [ + { + name: 'default' + properties: { + privateIPAllocationMethod: 'Dynamic' + subnet: { + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/virtualNetworks/\', parameters(\'hubName\'),\'/subnets/GatewaySubnet\')]' + } + publicIpAddress: { + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/publicIPAddresses/\', parameters(\'vpngw\').name,\'-pip\')]' + } + } + } + ] + sku: { + name: '[parameters(\'vpngw\').sku]' + tier: '[parameters(\'vpngw\').sku]' + } + } + } + ] + } + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + condition: '[greater(length(parameters(\'ergw\')),0)]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]' + ] + name: '[concat(parameters(\'hubName\'),\'-ergw\')]' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + apiVersion: '2020-05-01' + type: 'Microsoft.Network/publicIpAddresses' + location: '[parameters(\'HUB\').location]' + name: '[concat(parameters(\'ergw\').name,\'-pip\')]' + properties: { + publicIPAllocationMethod: 'Dynamic' + } + tags: {} + } + { + apiVersion: '2020-05-01' + name: '[parameters(\'ergw\').name]' + type: 'Microsoft.Network/virtualNetworkGateways' + location: '[parameters(\'HUB\').location]' + dependsOn: [ + '[concat(\'Microsoft.Network/publicIPAddresses/\', parameters(\'ergw\').name,\'-pip\')]' + ] + tags: {} + properties: { + gatewayType: 'ExpressRoute' + ipConfigurations: [ + { + name: 'default' + properties: { + privateIPAllocationMethod: 'Dynamic' + subnet: { + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/virtualNetworks/\', parameters(\'hubName\'),\'/subnets/GatewaySubnet\')]' + } + publicIpAddress: { + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/publicIPAddresses/\', parameters(\'ergw\').name,\'-pip\')]' + } + } + } + ] + sku: { + name: '[parameters(\'ergw\').sku]' + tier: '[parameters(\'ergw\').sku]' + } + } + } + ] + } + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + condition: '[greater(length(parameters(\'azfw\')),0)]' + name: '[concat(parameters(\'hubName\'),\'-azfw\')]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + apiVersion: '2020-05-01' + type: 'Microsoft.Network/publicIpAddresses' + name: '[concat(parameters(\'azfw\').name,\'-pip\')]' + location: '[parameters(\'azfw\').location]' + sku: { + name: 'Standard' + } + zones: '[if(contains(parameters(\'azfw\'),\'pipZones\'),parameters(\'azfw\').pipZones,json(\'null\'))]' + properties: { + publicIPAllocationMethod: 'Static' + } + tags: {} + } + { + apiVersion: '2020-05-01' + type: 'Microsoft.Network/azureFirewalls' + name: '[parameters(\'azfw\').name]' + location: '[parameters(\'azfw\').location]' + zones: '[if(contains(parameters(\'azfw\'),\'fwZones\'),parameters(\'azfw\').fwZones,json(\'null\'))]' + dependsOn: [ + '[concat(parameters(\'azfw\').name,\'-pip\')]' + ] + properties: { + threatIntelMode: '[parameters(\'azfw\').threatIntelMode]' + additionalProperties: '[if(contains(parameters(\'azfw\'),\'additionalProperties\'),parameters(\'azfw\').additionalProperties,json(\'null\'))]' + sku: '[if(contains(parameters(\'azfw\'),\'sku\'),parameters(\'azfw\').sku,json(\'null\'))]' + ipConfigurations: [ + { + name: '[concat(parameters(\'azfw\').name,\'-pip\')]' + properties: { + subnet: { + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/virtualNetworks/\', parameters(\'hubName\'),\'/subnets/AzureFirewallSubnet\')]' + } + publicIPAddress: { + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/publicIPAddresses/\', parameters(\'azfw\').name,\'-pip\')]' + } + } + } + ] + firewallPolicy: '[if(contains(parameters(\'azfw\'),\'firewallPolicy\'),parameters(\'azfw\').firewallPolicy,json(\'null\'))]' + } + tags: {} + } + ] + } + } + } + ] + } + } + } + } + } + } + } + name: 'Deploy-HUB' + } + { + properties: { + Description: 'Deploy spoke network with configuration to hub network based on ipam configuration object' + DisplayName: 'Deploy spoke network with configuration to hub network based on ipam configuration object' + Mode: 'Indexed' + Parameters: { + ipam: { + type: 'Array' + metadata: { + displayName: 'ipam' + description: null + } + defaultValue: [] + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Resources/resourceGroups' + deploymentScope: 'Subscription' + existenceScope: 'Subscription' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' + ] + existenceCondition: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions/resourceGroups' + } + { + field: 'name' + like: '[concat(subscription().displayName, \'-network\')]' + } + ] + } + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + ipam: { + value: '[parameters(\'ipam\')]' + defaultValue: [] + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + ipam: { + defaultValue: [ + { + name: 'bu1-weu-msx3-vNet1' + location: 'westeurope' + virtualNetworks: { + properties: { + addressSpace: { + addressPrefixes: [ + '10.51.217.0/24' + ] + } + } + } + networkSecurityGroups: { + properties: { + securityRules: [] + } + } + routeTables: { + properties: { + routes: [] + } + } + hubVirtualNetworkConnection: { + vWanVhubResourceId: '/subscriptions/99c2838f-a548-4884-a6e2-38c1f8fb4c0b/resourceGroups/contoso-global-vwan/providers/Microsoft.Network/virtualHubs/contoso-vhub-weu' + properties: { + allowHubToRemoteVnetTransit: true + allowRemoteVnetToUseHubVnetGateways: false + enableInternetSecurity: true + } + } + } + ] + type: 'Array' + } + } + variables: { + vNetRgName: '[concat(subscription().displayName, \'-network\')]' + vNetName: '[concat(subscription().displayName, \'-vNet\')]' + vNetSubId: '[subscription().subscriptionId]' + } + resources: [ + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-ipam-\',subscription().displayName,\'-RG-\',copyIndex())]' + location: '[parameters(\'ipam\')[copyIndex()].location]' + dependsOn: [] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2020-06-01' + name: '[variables(\'vNetRgName\')]' + location: '[parameters(\'ipam\')[copyIndex()].location]' + properties: {} + } + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2020-06-01' + name: 'NetworkWatcherRG' + location: '[parameters(\'ipam\')[copyIndex()].location]' + properties: {} + } + ] + outputs: {} + } + } + copy: { + name: 'ipam-rg-loop' + count: '[length(parameters(\'ipam\'))]' + } + condition: '[if(and(not(empty(parameters(\'ipam\'))), equals(toLower(parameters(\'ipam\')[copyIndex()].name),toLower(variables(\'vNetName\')))),bool(\'true\'),bool(\'false\'))]' + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-ipam-\',subscription().displayName,\'-nsg-udr-vnet-hub-vwan-peering-\',copyIndex())]' + dependsOn: [ + '[concat(\'es-ipam-\',subscription().displayName,\'-RG-\',copyIndex())]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + condition: '[contains(parameters(\'ipam\')[copyIndex()],\'networkSecurityGroups\')]' + apiVersion: '2020-05-01' + type: 'Microsoft.Network/networkSecurityGroups' + name: '[concat(subscription().displayName, \'-nsg\')]' + location: '[parameters(\'ipam\')[copyIndex()].location]' + properties: '[if(contains(parameters(\'ipam\')[copyIndex()],\'networkSecurityGroups\'),parameters(\'ipam\')[copyIndex()].networkSecurityGroups.properties,json(\'null\'))]' + } + { + condition: '[contains(parameters(\'ipam\')[copyIndex()],\'routeTables\')]' + apiVersion: '2020-05-01' + type: 'Microsoft.Network/routeTables' + name: '[concat(subscription().displayName, \'-udr\')]' + location: '[parameters(\'ipam\')[copyIndex()].location]' + properties: '[if(contains(parameters(\'ipam\')[copyIndex()],\'routeTables\'),parameters(\'ipam\')[copyIndex()].routeTables.properties,json(\'null\'))]' + } + { + condition: '[contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\')]' + type: 'Microsoft.Network/virtualNetworks' + apiVersion: '2020-05-01' + name: '[concat(subscription().displayName, \'-vnet\')]' + location: '[parameters(\'ipam\')[copyIndex()].location]' + dependsOn: [ + '[concat(subscription().displayName, \'-nsg\')]' + '[concat(subscription().displayName, \'-udr\')]' + ] + properties: '[if(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\'),parameters(\'ipam\')[copyIndex()].virtualNetworks.properties,json(\'null\'))]' + } + { + condition: '[contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\')]' + type: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' + apiVersion: '2020-05-01' + name: '[concat(variables(\'vNetName\'), \'/peerToHub\')]' + dependsOn: [ + '[concat(subscription().displayName, \'-vnet\')]' + ] + properties: '[if(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties,json(\'null\'))]' + } + { + condition: '[and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\'),contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\'))]' + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-ipam-vWan-\',subscription().displayName,\'-peering-\',copyIndex())]' + subscriptionId: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),split(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,\'/\')[2],json(\'null\'))]' + resourceGroup: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),split(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,\'/\')[4],json(\'null\'))]' + dependsOn: [ + '[concat(subscription().displayName, \'-vnet\')]' + ] + properties: { + mode: 'Incremental' + expressionEvaluationOptions: { + scope: 'inner' + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + remoteVirtualNetwork: { + type: 'string' + } + vWanVhubName: { + Type: 'string' + defaultValue: '' + } + allowHubToRemoteVnetTransit: { + Type: 'bool' + defaultValue: true + } + allowRemoteVnetToUseHubVnetGateways: { + Type: 'bool' + defaultValue: false + } + enableInternetSecurity: { + Type: 'bool' + defaultValue: true + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualHubs/hubVirtualNetworkConnections' + apiVersion: '2020-05-01' + name: '[[concat(parameters(\'vWanVhubName\'),\'/\',last(split(parameters(\'remoteVirtualNetwork\'),\'/\')))]' + properties: { + remoteVirtualNetwork: { + id: '[[parameters(\'remoteVirtualNetwork\')]' + } + allowHubToRemoteVnetTransit: '[[parameters(\'allowHubToRemoteVnetTransit\')]' + allowRemoteVnetToUseHubVnetGateways: '[[parameters(\'allowRemoteVnetToUseHubVnetGateways\')]' + enableInternetSecurity: '[[parameters(\'enableInternetSecurity\')]' + } + } + ] + outputs: {} + } + parameters: { + remoteVirtualNetwork: { + value: '[concat(subscription().id,\'/resourceGroups/\',variables(\'vNetRgName\'), \'/providers/\',\'Microsoft.Network/virtualNetworks/\', concat(subscription().displayName, \'-vnet\'))]' + } + vWanVhubName: { + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),split(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,\'/\')[8],json(\'null\'))]' + } + allowHubToRemoteVnetTransit: { + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.properties.allowHubToRemoteVnetTransit,json(\'null\'))]' + } + allowRemoteVnetToUseHubVnetGateways: { + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.properties.allowRemoteVnetToUseHubVnetGateways,json(\'null\'))]' + } + enableInternetSecurity: { + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.properties.enableInternetSecurity,json(\'null\'))]' + } + } + } + } + { + condition: '[and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\'),contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\'))]' + type: 'Microsoft.Resources/deployments' + apiVersion: '2020-06-01' + name: '[concat(\'es-ipam-hub-\',subscription().displayName,\'-peering-\',copyIndex())]' + subscriptionId: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\')),split(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,\'/\')[2],json(\'null\'))]' + resourceGroup: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\')),split(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,\'/\')[4],json(\'null\'))]' + dependsOn: [ + '[concat(subscription().displayName, \'-vnet\')]' + ] + properties: { + mode: 'Incremental' + expressionEvaluationOptions: { + scope: 'inner' + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + remoteVirtualNetwork: { + Type: 'string' + defaultValue: false + } + hubName: { + Type: 'string' + defaultValue: false + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' + name: '[[concat(parameters(\'hubName\'),\'/\',last(split(parameters(\'remoteVirtualNetwork\'),\'/\')))]' + apiVersion: '2020-05-01' + properties: { + allowVirtualNetworkAccess: true + allowForwardedTraffic: true + allowGatewayTransit: true + useRemoteGateways: false + remoteVirtualNetwork: { + id: '[[parameters(\'remoteVirtualNetwork\')]' + } + } + } + ] + outputs: {} + } + parameters: { + remoteVirtualNetwork: { + value: '[concat(subscription().id,\'/resourceGroups/\',variables(\'vNetRgName\'), \'/providers/\',\'Microsoft.Network/virtualNetworks/\', concat(subscription().displayName, \'-vnet\'))]' + } + hubName: { + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\')),split(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,\'/\')[8],json(\'null\'))]' + } + } + } + } + ] + outputs: {} + } + } + resourceGroup: '[variables(\'vNetRgName\')]' + copy: { + name: 'ipam-loop' + count: '[length(parameters(\'ipam\'))]' + } + condition: '[if(and(not(empty(parameters(\'ipam\'))), equals(toLower(parameters(\'ipam\')[copyIndex()].name),toLower(variables(\'vNetName\')))),bool(\'true\'),bool(\'false\'))]' + } + ] + outputs: { + ipam: { + condition: '[bool(\'true\')]' + type: 'Int' + value: '[length(parameters(\'ipam\'))]' + } + } + } + } + } + } + } + } + } + name: 'Deploy-vNet' + } + { + properties: { + Description: 'Deploy the Virtual WAN in the specific region.' + DisplayName: 'Deploy the Virtual WAN in the specific region' + Mode: 'Indexed' + Parameters: { + vwanname: { + type: 'String' + metadata: { + displayName: 'vwanname' + description: 'Name of the Virtual WAN' + } + } + vwanRegion: { + type: 'String' + metadata: { + displayName: 'vwanRegion' + description: 'Select Azure region for Virtual WAN' + strongType: 'location' + } + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/virtualWans' + deploymentScope: 'Subscription' + existenceScope: 'ResourceGroup' + name: '[parameters(\'vwanname\')]' + resourceGroupName: '[parameters(\'rgName\')]' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' + ] + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + rgName: { + value: '[parameters(\'rgName\')]' + } + vwanname: { + value: '[parameters(\'vwanname\')]' + } + vwanRegion: { + value: '[parameters(\'vwanRegion\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + rgName: { + type: 'string' + } + vwanname: { + type: 'string' + } + vwanRegion: { + type: 'string' + } + } + variables: { + vwansku: 'Standard' + } + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2018-05-01' + name: '[parameters(\'rgName\')]' + location: '[deployment().location]' + properties: {} + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + name: 'vwan' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: {} + resources: [ + { + type: 'Microsoft.Network/virtualWans' + apiVersion: '2020-05-01' + location: '[parameters(\'vwanRegion\')]' + name: '[parameters(\'vwanname\')]' + properties: { + virtualHubs: [] + vpnSites: [] + type: '[variables(\'vwansku\')]' + } + } + ] + outputs: {} + } + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-vWAN' + } + { + properties: { + Description: 'Deploy Virtual Hub network with Virtual Wan and Gateway and Firewall configured in the desired region. ' + DisplayName: 'Deploy Virtual Hub network with Virtual Wan and Gateway and Firewall configured.' + Mode: 'Indexed' + Parameters: { + vwanname: { + type: 'String' + metadata: { + displayName: 'vwanname' + description: 'Name of the Virtual WAN' + } + } + vHubName: { + type: 'String' + metadata: { + displayName: 'vHubName' + description: 'Name of the vHUB' + } + defaultValue: '' + } + vHUB: { + type: 'Object' + metadata: { + displayName: 'vHUB' + description: 'Object describing Virtual WAN vHUB' + } + } + vpngw: { + type: 'Object' + metadata: { + displayName: 'vpngw' + description: 'Object describing VPN gateway' + } + defaultValue: {} + } + ergw: { + type: 'Object' + metadata: { + displayName: 'ergw' + description: 'Object describing ExpressRoute gateway' + } + defaultValue: {} + } + azfw: { + type: 'Object' + metadata: { + displayName: 'azfw' + description: 'Object describing the Azure Firewall in vHUB' + } + defaultValue: {} + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Resources/subscriptions' + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Network/virtualHubs' + name: '[parameters(\'vHubName\')]' + deploymentScope: 'Subscription' + existenceScope: 'ResourceGroup' + ResourceGroupName: '[parameters(\'rgName\')]' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' + ] + deployment: { + location: 'northeurope' + properties: { + mode: 'incremental' + parameters: { + rgName: { + value: '[parameters(\'rgName\')]' + } + vwanname: { + value: '[parameters(\'vwanname\')]' + } + vHUB: { + value: '[parameters(\'vHUB\')]' + } + vpngw: { + value: '[parameters(\'vpngw\')]' + } + ergw: { + value: '[parameters(\'ergw\')]' + } + azfw: { + value: '[parameters(\'azfw\')]' + } + vHUBName: { + value: '[parameters(\'vHUBName\')]' + } + } + template: { + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' + contentVersion: '1.0.0.0' + parameters: { + vwanname: { + type: 'string' + metadata: { + description: 'Name of the Virtual WAN' + } + } + vHUB: { + type: 'object' + metadata: { + description: 'Object describing Virtual WAN vHUB' + } + } + vpngw: { + type: 'object' + defaultValue: {} + metadata: { + description: 'Object describing VPN gateway' + } + } + ergw: { + type: 'object' + defaultValue: {} + metadata: { + description: 'Object describing ExpressRoute gateway' + } + } + azfw: { + type: 'object' + defaultValue: {} + metadata: { + description: 'Object describing the Azure Firewall in vHUB' + } + } + rgName: { + type: 'String' + metadata: { + displayName: 'rgName' + description: 'Provide name for resource group.' + } + } + vHUBName: { + type: 'String' + metadata: { + displayName: 'vHUBName' + description: 'Name of the vHUB' + } + } + } + variables: { + vhubsku: 'Standard' + vwanresourceid: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'),\'/providers/Microsoft.Network/virtualWans/\',parameters(\'vwanname\'))]' + vwanhub: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'),\'/providers/Microsoft.Network/virtualHubs/\',parameters(\'vHUBName\'))]' + } + resources: [ + { + type: 'Microsoft.Resources/resourceGroups' + apiVersion: '2018-05-01' + name: '[parameters(\'rgName\')]' + location: '[deployment().location]' + properties: {} + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + name: '[concat(\'vHUBdeploy-\',parameters(\'vHUB\').location)]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' + ] + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualHubs' + apiVersion: '2020-05-01' + location: '[parameters(\'vHUB\').location]' + name: '[parameters(\'vHUBname\')]' + properties: { + virtualWan: { + id: '[variables(\'vwanresourceid\')]' + } + addressPrefix: '[parameters(\'vHUB\').addressPrefix]' + sku: '[variables(\'vhubsku\')]' + } + } + ] + } + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + condition: '[greater(length(parameters(\'vpngw\')),0)]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[concat(\'vHUBdeploy-\',parameters(\'vHUB\').location)]' + ] + name: '[concat(parameters(\'vHUBName\'),\'-vpngw\')]' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Network/vpnGateways' + apiVersion: '2020-05-01' + location: '[parameters(\'vHUB\').location]' + name: '[parameters(\'vpngw\').name]' + properties: { + virtualHub: { + id: '[variables(\'vwanhub\')]' + } + bgpSettings: '[parameters(\'vpngw\').bgpSettings]' + vpnGatewayScaleUnit: '[parameters(\'vpngw\').vpnGatewayScaleUnit]' + } + } + ] + } + } + } + { + type: 'Microsoft.Resources/deployments' + apiVersion: '2018-05-01' + condition: '[greater(length(parameters(\'ergw\')),0)]' + resourceGroup: '[parameters(\'rgName\')]' + dependsOn: [ + '[concat(\'vHUBdeploy-\',parameters(\'vHUB\').location)]' + ] + name: '[concat(parameters(\'vHUBName\'),\'-ergw\')]' + properties: { + mode: 'Incremental' + template: { + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: {} + variables: {} + resources: [ + { + type: 'Microsoft.Network/expressRouteGateways' + apiVersion: '2020-05-01' + location: '[parameters(\'vHUB\').location]' + name: '[parameters(\'ergw\').name]' + properties: { + virtualHub: { + id: '[variables(\'vwanhub\')]' + } + autoScaleConfiguration: '[parameters(\'ergw\').autoScaleConfiguration]' + } + } + ] + } + } + } + ] + } + } + } + } + } + } + } + name: 'Deploy-vHUB' + } + { + properties: { + Description: 'Deploys the diagnostic settings for Virtual Machine Scale Sets to stream to a Log Analytics workspace when any Virtual Machine Scale Sets which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + DisplayName: 'Deploy Diagnostic Settings for Virtual Machine Scale Sets to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Compute/virtualMachineScaleSets' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Compute/virtualMachineScaleSets/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + enabled: false + days: 0 + } + } + ] + logs: [] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-VMSS' + } + { + properties: { + Description: 'Deploys the diagnostic settings for VPN Gateway to stream to a Log Analytics workspace when any VPN Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.' + DisplayName: 'Deploy Diagnostic Settings for VPN Gateway to Log Analytics workspace' + Mode: 'Indexed' + Parameters: { + logAnalytics: { + type: 'String' + metadata: { + displayName: 'Log Analytics workspace' + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + strongType: 'omsWorkspace' + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + metricsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable metrics' + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' + } + } + logsEnabled: { + type: 'string' + defaultValue: 'True' + allowedValues: [ + 'True' + 'False' + ] + metadata: { + displayName: 'Enable logs' + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' + } + } + } + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyRule: { + if: { + field: 'type' + equals: 'Microsoft.Network/virtualNetworkGateways' + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Insights/diagnosticSettings' + name: 'setByPolicy' + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' + equals: 'true' + } + { + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' + equals: '[parameters(\'logAnalytics\')]' + } + ] + } + roleDefinitionIds: [ + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' + ] + deployment: { + properties: { + mode: 'incremental' + template: { + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + resourceName: { + type: 'string' + } + logAnalytics: { + type: 'string' + } + location: { + type: 'string' + } + profileName: { + type: 'string' + } + metricsEnabled: { + type: 'string' + } + logsEnabled: { + type: 'string' + } + } + variables: {} + resources: [ + { + type: 'Microsoft.Network/virtualNetworkGateways/providers/diagnosticSettings' + apiVersion: '2017-05-01-preview' + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' + location: '[parameters(\'location\')]' + dependsOn: [] + properties: { + workspaceId: '[parameters(\'logAnalytics\')]' + metrics: [ + { + category: 'AllMetrics' + enabled: '[parameters(\'metricsEnabled\')]' + retentionPolicy: { + days: 0 + enabled: false + } + timeGrain: null + } + ] + logs: [ + { + category: 'GatewayDiagnosticLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'IKEDiagnosticLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'P2SDiagnosticLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'RouteDiagnosticLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'RouteDiagnosticLog' + enabled: '[parameters(\'logsEnabled\')]' + } + { + category: 'TunnelDiagnosticLog' + enabled: '[parameters(\'logsEnabled\')]' + } + ] + } + } + ] + outputs: {} + } + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + location: { + value: '[field(\'location\')]' + } + resourceName: { + value: '[field(\'name\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + metricsEnabled: { + value: '[parameters(\'metricsEnabled\')]' + } + logsEnabled: { + value: '[parameters(\'logsEnabled\')]' + } + } + } + } + } + } + } + } + name: 'Deploy-Diagnostics-VNetGW' + } + { + properties: { + Description: 'Deploy Windows Domain Join Extension with keyvault configuration when the extension does not exist on a given windows Virtual Machine' + DisplayName: 'Deploy Windows Domain Join Extension with keyvault configuration' + Mode: 'Indexed' + Parameters: { + domainUsername: { + type: 'String' + metadata: { + displayName: 'domainUsername' + description: null + } + } + domainPassword: { + type: 'String' + metadata: { + displayName: 'domainPassword' + description: null + } + } + domainFQDN: { + type: 'String' + metadata: { + displayName: 'domainFQDN' + description: null + } + } + domainOUPath: { + type: 'String' + metadata: { + displayName: 'domainOUPath' + description: null + } + } + keyVaultResourceId: { + type: 'String' + metadata: { + displayName: 'keyVaultResourceId' + description: null + } + } + effect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Effect' + description: 'Enable or disable the execution of the policy' + } + } + } + metadata: { + version: '1.0.0' + category: 'Guest Configuration' + } + PolicyRule: { + if: { + allOf: [ + { + field: 'type' + equals: 'Microsoft.Compute/virtualMachines' + } + { + field: 'Microsoft.Compute/imagePublisher' + equals: 'MicrosoftWindowsServer' + } + { + field: 'Microsoft.Compute/imageOffer' + equals: 'WindowsServer' + } + { + field: 'Microsoft.Compute/imageSKU' + in: [ + '2008-R2-SP1' + '2008-R2-SP1-smalldisk' + '2008-R2-SP1-zhcn' + '2012-Datacenter' + '2012-datacenter-gensecond' + '2012-Datacenter-smalldisk' + '2012-datacenter-smalldisk-g2' + '2012-Datacenter-zhcn' + '2012-datacenter-zhcn-g2' + '2012-R2-Datacenter' + '2012-r2-datacenter-gensecond' + '2012-R2-Datacenter-smalldisk' + '2012-r2-datacenter-smalldisk-g2' + '2012-R2-Datacenter-zhcn' + '2012-r2-datacenter-zhcn-g2' + '2016-Datacenter' + '2016-datacenter-gensecond' + '2016-datacenter-gs' + '2016-Datacenter-Server-Core' + '2016-datacenter-server-core-g2' + '2016-Datacenter-Server-Core-smalldisk' + '2016-datacenter-server-core-smalldisk-g2' + '2016-Datacenter-smalldisk' + '2016-datacenter-smalldisk-g2' + '2016-Datacenter-with-Containers' + '2016-datacenter-with-containers-g2' + '2016-Datacenter-with-RDSH' + '2016-Datacenter-zhcn' + '2016-datacenter-zhcn-g2' + '2019-Datacenter' + '2019-Datacenter-Core' + '2019-datacenter-core-g2' + '2019-Datacenter-Core-smalldisk' + '2019-datacenter-core-smalldisk-g2' + '2019-Datacenter-Core-with-Containers' + '2019-datacenter-core-with-containers-g2' + '2019-Datacenter-Core-with-Containers-smalldisk' + '2019-datacenter-core-with-containers-smalldisk-g2' + '2019-datacenter-gensecond' + '2019-datacenter-gs' + '2019-Datacenter-smalldisk' + '2019-datacenter-smalldisk-g2' + '2019-Datacenter-with-Containers' + '2019-datacenter-with-containers-g2' + '2019-Datacenter-with-Containers-smalldisk' + '2019-datacenter-with-containers-smalldisk-g2' + '2019-Datacenter-zhcn' + '2019-datacenter-zhcn-g2' + 'Datacenter-Core-1803-with-Containers-smalldisk' + 'datacenter-core-1803-with-containers-smalldisk-g2' + 'Datacenter-Core-1809-with-Containers-smalldisk' + 'datacenter-core-1809-with-containers-smalldisk-g2' + 'Datacenter-Core-1903-with-Containers-smalldisk' + 'datacenter-core-1903-with-containers-smalldisk-g2' + 'datacenter-core-1909-with-containers-smalldisk' + 'datacenter-core-1909-with-containers-smalldisk-g1' + 'datacenter-core-1909-with-containers-smalldisk-g2' + ] + } + ] + } + then: { + effect: '[parameters(\'effect\')]' + details: { + type: 'Microsoft.Compute/virtualMachines/extensions' + roleDefinitionIds: [ + '/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c' + ] + existenceCondition: { + allOf: [ + { + field: 'Microsoft.Compute/virtualMachines/extensions/type' + equals: 'JsonADDomainExtension' + } + { + field: 'Microsoft.Compute/virtualMachines/extensions/publisher' + equals: 'Microsoft.Compute' + } + ] + } + deployment: { + properties: { + mode: 'incremental' + parameters: { + vmName: { + value: '[field(\'name\')]' + } + location: { + value: '[field(\'location\')]' + } + domainUsername: { + reference: { + keyVault: { + id: '[parameters(\'keyVaultResourceId\')]' + } + secretName: '[parameters(\'domainUsername\')]' + } + } + domainPassword: { + reference: { + keyVault: { + id: '[parameters(\'keyVaultResourceId\')]' + } + secretName: '[parameters(\'domainPassword\')]' + } + } + domainOUPath: { + value: '[parameters(\'domainOUPath\')]' + } + domainFQDN: { + value: '[parameters(\'domainFQDN\')]' + } + keyVaultResourceId: { + value: '[parameters(\'keyVaultResourceId\')]' + } + } + template: { + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' + contentVersion: '1.0.0.0' + parameters: { + vmName: { + type: 'string' + } + location: { + type: 'string' + } + domainUsername: { + type: 'string' + } + domainPassword: { + type: 'securestring' + } + domainFQDN: { + type: 'string' + } + domainOUPath: { + type: 'string' + } + keyVaultResourceId: { + type: 'string' + } + } + variables: { + domainJoinOptions: 3 + vmName: '[parameters(\'vmName\')]' + } + resources: [ + { + apiVersion: '2015-06-15' + type: 'Microsoft.Compute/virtualMachines/extensions' + name: '[concat(variables(\'vmName\'),\'/joindomain\')]' + location: '[resourceGroup().location]' + properties: { + publisher: 'Microsoft.Compute' + type: 'JsonADDomainExtension' + typeHandlerVersion: '1.3' + autoUpgradeMinorVersion: true + settings: { + Name: '[parameters(\'domainFQDN\')]' + User: '[parameters(\'domainUserName\')]' + Restart: 'true' + Options: '[variables(\'domainJoinOptions\')]' + OUPath: '[parameters(\'domainOUPath\')]' + } + protectedSettings: { + Password: '[parameters(\'domainPassword\')]' + } + } + } + ] + outputs: {} + } + } + } + } + } + } + } + name: 'Deploy-Windows-DomainJoin' + } + ] +} +var initiatives = { +//@[4:15) Variable initiatives. Type: object. Declaration start char: 0, length: 82201 + policySetDefinitions: [ + { + properties: { + Description: 'This policy set deploys the configurations of application Azure resources to forward diagnostic logs and metrics to an Azure Log Analytics workspace. See the list of policies of the services that are included ' + DisplayName: 'Deploy Diagnostic Settings to Azure Services' + Parameters: { + logAnalytics: { + metadata: { + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' + displayName: 'Log Analytics workspace' + strongType: 'omsWorkspace' + } + type: 'String' + } + profileName: { + type: 'string' + defaultValue: 'setbypolicy' + metadata: { + displayName: 'Profile name' + description: 'The diagnostic settings profile name' + } + } + ACILogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Container Instances to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Container Instances to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.' + } + } + ACRLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Container Registry to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Container Registry to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.' + } + } + AKSLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Kubernetes Service to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Kubernetes Service to stream to a Log Analytics workspace when any Kubernetes Service which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.' + } + } + AnalysisServiceLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Analysis Services to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Analysis Services to stream to a Log Analytics workspace when any Analysis Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + APIMgmtLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for API Management to Log Analytics workspace' + description: 'Deploys the diagnostic settings for API Management to stream to a Log Analytics workspace when any API Management which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + ApplicationGatewayLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Application Gateway to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Application Gateway to stream to a Log Analytics workspace when any Application Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + AutomationLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Automation to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Automation to stream to a Log Analytics workspace when any Automation which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + BatchLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Batch to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Batch to stream to a Log Analytics workspace when any Batch which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + CDNEndpointsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for CDN Endpoint to Log Analytics workspace' + description: 'Deploys the diagnostic settings for CDN Endpoint to stream to a Log Analytics workspace when any CDN Endpoint which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + CognitiveServicesLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Cognitive Services to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Cognitive Services to stream to a Log Analytics workspace when any Cognitive Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + CosmosLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Cosmos DB to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Cosmos DB to stream to a Log Analytics workspace when any Cosmos DB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + DatabricksLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Databricks to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Databricks to stream to a Log Analytics workspace when any Databricks which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + DataFactoryLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Data Factory to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Data Factory to stream to a Log Analytics workspace when any Data Factory which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + DataLakeStoreLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Azure Data Lake Store to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Azure Data Lake Store to stream to a Log Analytics workspace when anyAzure Data Lake Store which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + DataLakeAnalyticsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Data Lake Analytics to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Data Lake Analytics to stream to a Log Analytics workspace when any Data Lake Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + EventGridSubLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Event Grid subscriptions to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Event Grid subscriptions to stream to a Log Analytics workspace when any Event Grid subscriptions which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + EventGridTopicLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Event Grid Topic to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Event Grid Topic to stream to a Log Analytics workspace when any Event Grid Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + EventHubLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Event Hubs to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Event Hubs to stream to a Log Analytics workspace when any Event Hubs which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + EventSystemTopicLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Event Grid System Topic to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Event Grid System Topic to stream to a Log Analytics workspace when any Event Grid System Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + ExpressRouteLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for ExpressRoute to Log Analytics workspace' + description: 'Deploys the diagnostic settings for ExpressRoute to stream to a Log Analytics workspace when any ExpressRoute which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + FirewallLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Firewall to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Firewall to stream to a Log Analytics workspace when any Firewall which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + FrontDoorLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Front Door to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Front Door to stream to a Log Analytics workspace when any Front Door which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + FunctionAppLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Azure Function App to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Azure Function App to stream to a Log Analytics workspace when any function app which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + HDInsightLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for HDInsight to Log Analytics workspace' + description: 'Deploys the diagnostic settings for HDInsight to stream to a Log Analytics workspace when any HDInsight which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + IotHubLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for IoT Hub to Log Analytics workspace' + description: 'Deploys the diagnostic settings for IoT Hub to stream to a Log Analytics workspace when any IoT Hub which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + KeyVaultLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Key Vault to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Key Vault to stream to a Log Analytics workspace when any Key Vault which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + LoadBalancerLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Load Balancer to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Load Balancer to stream to a Log Analytics workspace when any Load Balancer which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + LogicAppsISELogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Logic Apps integration service environment to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Logic Apps integration service environment to stream to a Log Analytics workspace when any Logic Apps integration service environment which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + LogicAppsWFLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Logic Apps Workflow runtime to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Logic Apps Workflow runtimeto stream to a Log Analytics workspace when any Logic Apps Workflow runtime which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + MariaDBLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for MariaDB to Log Analytics workspace' + description: 'Deploys the diagnostic settings for MariaDB to stream to a Log Analytics workspace when any MariaDB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + MlWorkspaceLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Machine Learning workspace to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Machine Learning workspace to stream to a Log Analytics workspace when any Machine Learning workspace which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + MySQLLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Database for MySQL to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Database for MySQL to stream to a Log Analytics workspace when any Database for MySQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + NetworkSecurityGroupsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Network Security Groups to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Network Security Groups to stream to a Log Analytics workspace when any Network Security Groups which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + NetworkNICLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Network Interfaces to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Network Interfaces to stream to a Log Analytics workspace when any Network Interfaces which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + PostgreSQLLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Database for PostgreSQL to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Database for PostgreSQL to stream to a Log Analytics workspace when any Database for PostgreSQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + PowerBIEmbeddedLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Power BI Embedded to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Power BI Embedded to stream to a Log Analytics workspace when any Power BI Embedded which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + NetworkPublicIPNicLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Public IP addresses to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Public IP addresses to stream to a Log Analytics workspace when any Public IP addresses which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + RecoveryVaultLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Recovery Services vaults to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Recovery Services vaults to stream to a Log Analytics workspace when any Recovery Services vaults which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + RedisCacheLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Redis Cache to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Redis Cache to stream to a Log Analytics workspace when any Redis Cache which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + RelayLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Relay to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Relay to stream to a Log Analytics workspace when any Relay which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + SearchServicesLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Search Services to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Search Services to stream to a Log Analytics workspace when any Search Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + ServiceBusLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Service Bus namespaces to Log Analytics workspace' + description: 'Deploys the diagnostic settings for ServiceBus to stream to a Log Analytics workspace when any ServiceBus which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + SignalRLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for SignalR to Log Analytics workspace' + description: 'Deploys the diagnostic settings for SignalR to stream to a Log Analytics workspace when any SignalR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + SQLDBsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for SQL Databases to Log Analytics workspace' + description: 'Deploys the diagnostic settings for SQL Databases to stream to a Log Analytics workspace when any SQL Databases which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + SQLElasticPoolsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for SQL Elastic Pools to Log Analytics workspace' + description: 'Deploys the diagnostic settings for SQL Elastic Pools to stream to a Log Analytics workspace when any SQL Elastic Pools which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + SQLMLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for SQL Managed Instances to Log Analytics workspace' + description: 'Deploys the diagnostic settings for SQL Managed Instances to stream to a Log Analytics workspace when any SQL Managed Instances which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + StreamAnalyticsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Stream Analytics to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Stream Analytics to stream to a Log Analytics workspace when any Stream Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + TimeSeriesInsightsLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Time Series Insights to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Time Series Insights to stream to a Log Analytics workspace when any Time Series Insights which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + TrafficManagerLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Traffic Manager to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Traffic Manager to stream to a Log Analytics workspace when any Traffic Manager which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + VirtualNetworkLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Virtual Network to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Virtual Network to stream to a Log Analytics workspace when any Virtual Network which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + VirtualMachinesLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Virtual Machines to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Virtual Machines to stream to a Log Analytics workspace when any Virtual Machines which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + VMSSLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for Virtual Machine Scale Sets to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Virtual Machine Scale Sets to stream to a Log Analytics workspace when any Virtual Machine Scale Sets which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + VNetGWLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for VPN Gateway to Log Analytics workspace' + description: 'Deploys the diagnostic settings for VPN Gateway to stream to a Log Analytics workspace when any VPN Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.' + } + } + AppServiceLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for App Service Plan to Log Analytics workspace' + description: 'Deploys the diagnostic settings for App Service Plan to stream to a Log Analytics workspace when any App Service Plan which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + AppServiceWebappLogAnalyticsEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy Diagnostic Settings for App Service to Log Analytics workspace' + description: 'Deploys the diagnostic settings for Web App to stream to a Log Analytics workspace when any Web App which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' + } + } + } + PolicyDefinitionGroups: null + metadata: { + version: '1.0.0' + category: 'Monitoring' + } + PolicyDefinitions: [ + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ACI' + policyDefinitionReferenceId: 'ACIDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'ACILogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ACR' + policyDefinitionReferenceId: 'ACRDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'ACRLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AKS' + policyDefinitionReferenceId: 'AKSDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'AKSLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AnalysisService' + policyDefinitionReferenceId: 'AnalysisServiceDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'AnalysisServiceLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-APIMgmt' + policyDefinitionReferenceId: 'APIMgmtDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'APIMgmtLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ApplicationGateway' + policyDefinitionReferenceId: 'ApplicationGatewayDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'ApplicationGatewayLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AA' + policyDefinitionReferenceId: 'AutomationDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'AutomationLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Batch' + policyDefinitionReferenceId: 'BatchDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'BatchLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CDNEndpoints' + policyDefinitionReferenceId: 'CDNEndpointsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'CDNEndpointsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CognitiveServices' + policyDefinitionReferenceId: 'CognitiveServicesDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'CognitiveServicesLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CosmosDB' + policyDefinitionReferenceId: 'CosmosDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'CosmosLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Databricks' + policyDefinitionReferenceId: 'DatabricksDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'DatabricksLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DataFactory' + policyDefinitionReferenceId: 'DataFactoryDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'DataFactoryLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DataLakeStore' + policyDefinitionReferenceId: 'DataLakeStoreDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'DataLakeStoreLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DLAnalytics' + policyDefinitionReferenceId: 'DataLakeAnalyticsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'DataLakeAnalyticsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridSub' + policyDefinitionReferenceId: 'EventGridSubDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'EventGridSubLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridTopic' + policyDefinitionReferenceId: 'EventGridTopicDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'EventGridTopicLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventHub' + policyDefinitionReferenceId: 'EventHubDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'EventHubLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridSystemTopic' + policyDefinitionReferenceId: 'EventSystemTopicDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'EventSystemTopicLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ExpressRoute' + policyDefinitionReferenceId: 'ExpressRouteDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'ExpressRouteLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Firewall' + policyDefinitionReferenceId: 'FirewallDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'FirewallLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-FrontDoor' + policyDefinitionReferenceId: 'FrontDoorDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'FrontDoorLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Function' + policyDefinitionReferenceId: 'FunctionAppDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'FunctionAppLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-HDInsight' + policyDefinitionReferenceId: 'HDInsightDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'HDInsightLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-iotHub' + policyDefinitionReferenceId: 'IotHubDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'IotHubLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-KeyVault' + policyDefinitionReferenceId: 'KeyVaultDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'KeyVaultLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LoadBalancer' + policyDefinitionReferenceId: 'LoadBalancerDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'LoadBalancerLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LogicAppsISE' + policyDefinitionReferenceId: 'LogicAppsISEDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'LogicAppsISELogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LogicAppsWF' + policyDefinitionReferenceId: 'LogicAppsWFDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'LogicAppsWFLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MariaDB' + policyDefinitionReferenceId: 'MariaDBDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'MariaDBLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MlWorkspace' + policyDefinitionReferenceId: 'MlWorkspaceDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'MlWorkspaceLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MySQL' + policyDefinitionReferenceId: 'MySQLDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'MySQLLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-NetworkSecurityGroups' + policyDefinitionReferenceId: 'NetworkSecurityGroupsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'NetworkSecurityGroupsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-NIC' + policyDefinitionReferenceId: 'NetworkNICDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'NetworkNICLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PostgreSQL' + policyDefinitionReferenceId: 'PostgreSQLDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'PostgreSQLLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PowerBIEmbedded' + policyDefinitionReferenceId: 'PowerBIEmbeddedDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'PowerBIEmbeddedLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PublicIP' + policyDefinitionReferenceId: 'NetworkPublicIPNicDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'NetworkPublicIPNicLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-RecoveryVault' + policyDefinitionReferenceId: 'RecoveryVaultDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'RecoveryVaultLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-RedisCache' + policyDefinitionReferenceId: 'RedisCacheDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'RedisCacheLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Relay' + policyDefinitionReferenceId: 'RelayDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'RelayLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SearchServices' + policyDefinitionReferenceId: 'SearchServicesDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'SearchServicesLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ServiceBus' + policyDefinitionReferenceId: 'ServiceBusDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'ServiceBusLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SignalR' + policyDefinitionReferenceId: 'SignalRDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'SignalRLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLDBs' + policyDefinitionReferenceId: 'SQLDBsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'SQLDBsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLElasticPools' + policyDefinitionReferenceId: 'SQLElasticPoolsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'SQLElasticPoolsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLMI' + policyDefinitionReferenceId: 'SQLMDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'SQLMLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-StreamAnalytics' + policyDefinitionReferenceId: 'StreamAnalyticsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'StreamAnalyticsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-TimeSeriesInsights' + policyDefinitionReferenceId: 'TimeSeriesInsightsDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'TimeSeriesInsightsLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-TrafficManager' + policyDefinitionReferenceId: 'TrafficManagerDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'TrafficManagerLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VirtualNetwork' + policyDefinitionReferenceId: 'VirtualNetworkDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'VirtualNetworkLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VM' + policyDefinitionReferenceId: 'VirtualMachinesDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'VirtualMachinesLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VMSS' + policyDefinitionReferenceId: 'VMSSDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'VMSSLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VNetGW' + policyDefinitionReferenceId: 'VNetGWDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'VNetGWLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-WebServerFarm' + policyDefinitionReferenceId: 'AppServiceDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'AppServiceLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Website' + policyDefinitionReferenceId: 'AppServiceWebappDeployDiagnosticLogDeployLogAnalytics' + parameters: { + logAnalytics: { + value: '[parameters(\'logAnalytics\')]' + } + effect: { + value: '[parameters(\'AppServiceWebappLogAnalyticsEffect\')]' + } + profileName: { + value: '[parameters(\'profileName\')]' + } + } + } + ] + } + type: null + name: 'Deploy-Diag-LogAnalytics' + } + { + properties: { + Description: 'This policy denies creation of Azure PAAS services with exposed public endpoints. This policy set includes the policy for the following services KeyVault, Storage accounts, AKS, Cosmos, SQL Servers, MariaDB, MySQL and Postgress. ' + DisplayName: 'Public network access should be disabled for PAAS services' + Parameters: { + CosmosPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access should be disabled for CosmosDB' + description: 'This policy denies that Cosmos database accounts are created with out public network access is disabled.' + } + } + MariaDBPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access should be disabled for MariaDB' + description: 'This policy denies the creation of Maria DB accounts with exposed public endpoints' + } + } + MySQLPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access should be disabled for MySQL' + description: 'This policy denies creation of MySql DB accounts with exposed public endpoints' + } + } + PostgreSQLPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access should be disabled for PostgreSql' + description: 'This policy denies creation of Postgre SQL DB accounts with exposed public endpoints' + } + } + KeyVaultPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access should be disabled for KeyVault' + description: 'This policy denies creation of Key Vaults with IP Firewall exposed to all public endpoints' + } + } + SqlServerPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access on Azure SQL Database should be disabled' + description: 'This policy denies creation of Sql servers with exposed public endpoints' + } + } + StoragePublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access onStorage accounts should be disabled' + description: 'This policy denies creation of storage accounts with IP Firewall exposed to all public endpoints' + } + } + AKSPublicIpDenyEffect: { + type: 'string' + defaultValue: 'Deny' + allowedValues: [ + 'Audit' + 'Deny' + 'Disabled' + ] + metadata: { + displayName: 'Public network access on AKS API should be disabled' + description: 'This policy denies the creation of Azure Kubernetes Service non-private clusters' + } + } + } + PolicyDefinitionGroups: null + metadata: { + version: '1.0.0' + category: 'Network' + } + PolicyDefinitions: [ + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-CosmosDB' + policyDefinitionReferenceId: 'CosmosDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'CosmosPublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-MariaDB' + policyDefinitionReferenceId: 'MariaDBDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'MariaDBPublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-MySQL' + policyDefinitionReferenceId: 'MySQLDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'MySQLPublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-PostgreSql' + policyDefinitionReferenceId: 'PostgreSQLDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'PostgreSQLPublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-KeyVault' + policyDefinitionReferenceId: 'KeyVaultDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'KeyVaultPublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Sql' + policyDefinitionReferenceId: 'SqlServerDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'SqlServerPublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Storage' + policyDefinitionReferenceId: 'StorageDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'StoragePublicIpDenyEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Aks' + policyDefinitionReferenceId: 'AKSDenyPaasPublicIP' + parameters: { + effect: { + value: '[parameters(\'AKSPublicIpDenyEffect\')]' + } + } + } + ] + } + type: null + name: 'Deny-PublicEndpoints' + } + { + properties: { + Description: 'Deploy auditing, Alert, TDE and SQL vulnerability to SQL Databases when it not exist in the deployment' + DisplayName: 'Deploy SQL Database built-in SQL security configuration' + Parameters: { + vulnerabilityAssessmentsEmail: { + metadata: { + description: 'The email address to send alerts' + displayName: 'The email address to send alerts' + } + type: 'String' + } + vulnerabilityAssessmentsStorageID: { + metadata: { + description: 'The storage account ID to store assessments' + displayName: 'The storage account ID to store assessments' + } + type: 'String' + } + SqlDbTdeDeploySqlSecurityEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy SQL Database Transparent Data Encryption ' + description: 'Deploy the Transparent Data Encryption when it is not enabled in the deployment' + } + } + SqlDbSecurityAlertPoliciesDeploySqlSecurityEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy SQL Database security Alert Policies configuration with email admin accounts' + description: 'Deploy the security Alert Policies configuration with email admin accounts when it not exist in current configuration' + } + } + SqlDbAuditingSettingsDeploySqlSecurityEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy SQL database auditing settings' + description: 'Deploy auditing settings to SQL Database when it not exist in the deployment' + } + } + SqlDbVulnerabilityAssessmentsDeploySqlSecurityEffect: { + type: 'string' + defaultValue: 'DeployIfNotExists' + allowedValues: [ + 'DeployIfNotExists' + 'Disabled' + ] + metadata: { + displayName: 'Deploy SQL Database vulnerability Assessments' + description: 'Deploy SQL Database vulnerability Assessments when it not exist in the deployment. To the specific storage account in the parameters' + } + } + } + PolicyDefinitionGroups: null + metadata: { + version: '1.0.0' + category: 'SQL' + } + PolicyDefinitions: [ + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-Tde' + policyDefinitionReferenceId: 'SqlDbTdeDeploySqlSecurity' + parameters: { + effect: { + value: '[parameters(\'SqlDbTdeDeploySqlSecurityEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-SecurityAlertPolicies' + policyDefinitionReferenceId: 'SqlDbSecurityAlertPoliciesDeploySqlSecurity' + parameters: { + effect: { + value: '[parameters(\'SqlDbSecurityAlertPoliciesDeploySqlSecurityEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-AuditingSettings' + policyDefinitionReferenceId: 'SqlDbAuditingSettingsDeploySqlSecurity' + parameters: { + effect: { + value: '[parameters(\'SqlDbAuditingSettingsDeploySqlSecurityEffect\')]' + } + } + } + { + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-vulnerabilityAssessments' + policyDefinitionReferenceId: 'SqlDbVulnerabilityAssessmentsDeploySqlSecurity' + parameters: { + effect: { + value: '[parameters(\'SqlDbVulnerabilityAssessmentsDeploySqlSecurityEffect\')]' + } + vulnerabilityAssessmentsEmail: { + value: '[parameters(\'vulnerabilityAssessmentsEmail\')]' + } + vulnerabilityAssessmentsStorageID: { + value: '[parameters(\'vulnerabilityAssessmentsStorageID\')]' + } + } + } + ] + } + type: null + name: 'Deploy-Sql-Security' + } + ] +} + +resource policies_policyDefinitions_0_name 'Microsoft.Authorization/policyDefinitions@2019-09-01' = { +//@[9:42) Resource policies_policyDefinitions_0_name. Type: Microsoft.Authorization/policyDefinitions@2019-09-01. Declaration start char: 0, length: 547 + name: policies.policyDefinitions[0].name + properties: { + displayName: policies.policyDefinitions[0].properties.displayName + description: policies.policyDefinitions[0].properties.description + mode: 'All' + policyType: 'Custom' + parameters: policies.policyDefinitions[0].properties.parameters + policyRule: policies.policyDefinitions[0].properties.policyRule + metadata: policies.policyDefinitions[0].properties.metadata + } +} + +resource initiatives_policySetDefinitions_0_name 'Microsoft.Authorization/policySetDefinitions@2019-09-01' = { +//@[9:48) Resource initiatives_policySetDefinitions_0_name. Type: Microsoft.Authorization/policySetDefinitions@2019-09-01. Declaration start char: 0, length: 565 + name: initiatives.policySetDefinitions[0].name + properties: { + displayName: initiatives.policySetDefinitions[0].properties.displayName + description: initiatives.policySetDefinitions[0].properties.description + parameters: initiatives.policySetDefinitions[0].properties.parameters + policyDefinitions: initiatives.policySetDefinitions[0].properties.policyDefinitions + metadata: initiatives.policySetDefinitions[0].properties.metadata + } +} diff --git a/src/Bicep.Core.Samples/Files/LargeTemplate_LF/main.syntax.bicep b/src/Bicep.Core.Samples/Files/LargeTemplate_LF/main.syntax.bicep new file mode 100644 index 00000000000..cad21eb53b4 --- /dev/null +++ b/src/Bicep.Core.Samples/Files/LargeTemplate_LF/main.syntax.bicep @@ -0,0 +1,109584 @@ +targetScope = 'managementGroup' +//@[0:31) TargetScopeSyntax +//@[0:11) Identifier |targetScope| +//@[12:13) Assignment |=| +//@[14:31) StringSyntax +//@[14:31) StringComplete |'managementGroup'| +//@[31:33) NewLine |\n\n| + +@maxLength(5) +//@[0:56) ParameterDeclarationSyntax +//@[0:13) DecoratorSyntax +//@[0:1) At |@| +//@[1:13) FunctionCallSyntax +//@[1:10) IdentifierSyntax +//@[1:10) Identifier |maxLength| +//@[10:11) LeftParen |(| +//@[11:12) FunctionArgumentSyntax +//@[11:12) IntegerLiteralSyntax +//@[11:12) Integer |5| +//@[12:13) RightParen |)| +//@[13:14) NewLine |\n| +param topLevelManagementGroupPrefix string +//@[0:5) Identifier |param| +//@[6:35) IdentifierSyntax +//@[6:35) Identifier |topLevelManagementGroupPrefix| +//@[36:42) TypeSyntax +//@[36:42) Identifier |string| +//@[42:44) NewLine |\n\n| + +var scope = '/providers/Microsoft.Management/managementGroups/${topLevelManagementGroupPrefix}' +//@[0:95) VariableDeclarationSyntax +//@[0:3) Identifier |var| +//@[4:9) IdentifierSyntax +//@[4:9) Identifier |scope| +//@[10:11) Assignment |=| +//@[12:95) StringSyntax +//@[12:64) StringLeftPiece |'/providers/Microsoft.Management/managementGroups/${| +//@[64:93) VariableAccessSyntax +//@[64:93) IdentifierSyntax +//@[64:93) Identifier |topLevelManagementGroupPrefix| +//@[93:95) StringRightPiece |}'| +//@[95:96) NewLine |\n| +var policies = { +//@[0:601644) VariableDeclarationSyntax +//@[0:3) Identifier |var| +//@[4:12) IdentifierSyntax +//@[4:12) Identifier |policies| +//@[13:14) Assignment |=| +//@[15:601644) ObjectSyntax +//@[15:16) LeftBrace |{| +//@[16:17) NewLine |\n| + policyDefinitions: [ +//@[2:601625) ObjectPropertySyntax +//@[2:19) IdentifierSyntax +//@[2:19) Identifier |policyDefinitions| +//@[19:20) Colon |:| +//@[21:601625) ArraySyntax +//@[21:22) LeftSquare |[| +//@[22:23) NewLine |\n| + { +//@[4:5809) ArrayItemSyntax +//@[4:5809) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[10:5760) ObjectPropertySyntax +//@[10:20) IdentifierSyntax +//@[10:20) Identifier |properties| +//@[20:21) Colon |:| +//@[22:5760) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + Description: 'Deploys the diagnostic settings for Container Instances to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.' +//@[12:259) ObjectPropertySyntax +//@[12:23) IdentifierSyntax +//@[12:23) Identifier |Description| +//@[23:24) Colon |:| +//@[25:259) StringSyntax +//@[25:259) StringComplete |'Deploys the diagnostic settings for Container Instances to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.'| +//@[259:260) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Container Instances to Log Analytics workspace' +//@[8:100) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:100) StringSyntax +//@[21:100) StringComplete |'Deploy Diagnostic Settings for Container Instances to Log Analytics workspace'| +//@[100:101) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1472) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1472) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:3780) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:3780) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:119) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:119) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.ContainerInstance/containerGroups' +//@[12:65) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:65) StringSyntax +//@[20:65) StringComplete |'Microsoft.ContainerInstance/containerGroups'| +//@[65:66) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:3628) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:3628) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:3551) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:3551) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:432) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:432) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:380) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:380) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:2724) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:2724) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:2680) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:2680) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:1966) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:1966) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:557) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:557) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1134) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1134) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1079) ArrayItemSyntax +//@[22:1079) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.ContainerInstance/containerGroups/providers/diagnosticSettings' +//@[24:104) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:104) StringSyntax +//@[30:104) StringComplete |'Microsoft.ContainerInstance/containerGroups/providers/diagnosticSettings'| +//@[104:105) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:636) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:636) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [] +//@[26:34) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:34) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) RightSquare |]| +//@[34:35) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:627) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:627) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-ACI' +//@[6:36) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:36) StringSyntax +//@[12:36) StringComplete |'Deploy-Diagnostics-ACI'| +//@[36:37) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:7708) ArrayItemSyntax +//@[4:7708) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + Properties: { +//@[6:7668) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |Properties| +//@[16:17) Colon |:| +//@[18:7668) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Depoloys a default budget on subscriptions.' +//@[8:66) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:66) StringSyntax +//@[21:66) StringComplete |'Depoloys a default budget on subscriptions.'| +//@[66:67) NewLine |\n| + DisplayName: 'Deploy a default budget on subscriptions' +//@[8:63) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:63) StringSyntax +//@[21:63) StringComplete |'Deploy a default budget on subscriptions'| +//@[63:64) NewLine |\n| + Mode: 'All' +//@[8:19) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:19) StringSyntax +//@[14:19) StringComplete |'All'| +//@[19:20) NewLine |\n| + Parameters: { +//@[8:2272) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:2272) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + amount: { +//@[10:217) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |amount| +//@[16:17) Colon |:| +//@[18:217) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: '1000' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'1000'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:125) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:125) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + description: 'The total amount of cost or usage to track with the budget' +//@[14:87) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:87) StringSyntax +//@[27:87) StringComplete |'The total amount of cost or usage to track with the budget'| +//@[87:88) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + timeGrain: { +//@[10:464) ObjectPropertySyntax +//@[10:19) IdentifierSyntax +//@[10:19) Identifier |timeGrain| +//@[19:20) Colon |:| +//@[21:464) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'Monthly' +//@[12:35) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:35) StringSyntax +//@[26:35) StringComplete |'Monthly'| +//@[35:36) NewLine |\n| + allowedValues: [ +//@[12:207) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:207) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Monthly' +//@[14:23) ArrayItemSyntax +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Monthly'| +//@[23:24) NewLine |\n| + 'Quarterly' +//@[14:25) ArrayItemSyntax +//@[14:25) StringSyntax +//@[14:25) StringComplete |'Quarterly'| +//@[25:26) NewLine |\n| + 'Annually' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Annually'| +//@[24:25) NewLine |\n| + 'BillingMonth' +//@[14:28) ArrayItemSyntax +//@[14:28) StringSyntax +//@[14:28) StringComplete |'BillingMonth'| +//@[28:29) NewLine |\n| + 'BillingQuarter' +//@[14:30) ArrayItemSyntax +//@[14:30) StringSyntax +//@[14:30) StringComplete |'BillingQuarter'| +//@[30:31) NewLine |\n| + 'BillingAnnual' +//@[14:29) ArrayItemSyntax +//@[14:29) StringSyntax +//@[14:29) StringComplete |'BillingAnnual'| +//@[29:30) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:158) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:158) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + description: 'The time covered by a budget. Tracking of the amount will be reset based on the time grain.' +//@[14:120) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:120) StringSyntax +//@[27:120) StringComplete |'The time covered by a budget. Tracking of the amount will be reset based on the time grain.'| +//@[120:121) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + firstThreshold: { +//@[10:326) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |firstThreshold| +//@[24:25) Colon |:| +//@[26:326) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: '90' +//@[12:30) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:30) StringSyntax +//@[26:30) StringComplete |'90'| +//@[30:31) NewLine |\n| + metadata: { +//@[12:228) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:228) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + description: 'Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0 and 1000.' +//@[14:190) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:190) StringSyntax +//@[27:190) StringComplete |'Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0 and 1000.'| +//@[190:191) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + secondThreshold: { +//@[10:328) ObjectPropertySyntax +//@[10:25) IdentifierSyntax +//@[10:25) Identifier |secondThreshold| +//@[25:26) Colon |:| +//@[27:328) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: '100' +//@[12:31) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:31) StringSyntax +//@[26:31) StringComplete |'100'| +//@[31:32) NewLine |\n| + metadata: { +//@[12:228) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:228) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + description: 'Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0 and 1000.' +//@[14:190) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:190) StringSyntax +//@[27:190) StringComplete |'Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0 and 1000.'| +//@[190:191) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + contactRoles: { +//@[10:334) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |contactRoles| +//@[22:23) Colon |:| +//@[24:334) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'array' +//@[12:25) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:25) StringSyntax +//@[18:25) StringComplete |'array'| +//@[25:26) NewLine |\n| + defaultValue: [ +//@[12:91) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:91) ArraySyntax +//@[26:27) LeftSquare |[| +//@[27:28) NewLine |\n| + 'Owner' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Owner'| +//@[21:22) NewLine |\n| + 'Contributor' +//@[14:27) ArrayItemSyntax +//@[14:27) StringSyntax +//@[14:27) StringComplete |'Contributor'| +//@[27:28) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:178) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:178) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + description: 'The list of contact RBAC roles, in an array, to send the budget notification to when the threshold is exceeded.' +//@[14:140) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:140) StringSyntax +//@[27:140) StringComplete |'The list of contact RBAC roles, in an array, to send the budget notification to when the threshold is exceeded.'| +//@[140:141) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + contactEmails: { +//@[10:269) ObjectPropertySyntax +//@[10:23) IdentifierSyntax +//@[10:23) Identifier |contactEmails| +//@[23:24) Colon |:| +//@[25:269) ObjectSyntax +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + type: 'array' +//@[12:25) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:25) StringSyntax +//@[18:25) StringComplete |'array'| +//@[25:26) NewLine |\n| + defaultValue: [] +//@[12:28) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:28) ArraySyntax +//@[26:27) LeftSquare |[| +//@[27:28) RightSquare |]| +//@[28:29) NewLine |\n| + metadata: { +//@[12:175) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:175) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + description: 'The list of email addresses, in an array, to send the budget notification to when the threshold is exceeded.' +//@[14:137) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:137) StringSyntax +//@[27:137) StringComplete |'The list of email addresses, in an array, to send the budget notification to when the threshold is exceeded.'| +//@[137:138) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + contactGroups: { +//@[10:296) ObjectPropertySyntax +//@[10:23) IdentifierSyntax +//@[10:23) Identifier |contactGroups| +//@[23:24) Colon |:| +//@[25:296) ObjectSyntax +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + type: 'array' +//@[12:25) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:25) StringSyntax +//@[18:25) StringComplete |'array'| +//@[25:26) NewLine |\n| + defaultValue: [] +//@[12:28) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:28) ArraySyntax +//@[26:27) LeftSquare |[| +//@[27:28) RightSquare |]| +//@[28:29) NewLine |\n| + metadata: { +//@[12:202) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:202) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + description: 'The list of action groups, in an array, to send the budget notification to when the threshold is exceeded. It accepts array of strings.' +//@[14:164) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:164) StringSyntax +//@[27:164) StringComplete |'The list of action groups, in an array, to send the budget notification to when the threshold is exceeded. It accepts array of strings.'| +//@[164:165) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:85) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:85) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Budget' +//@[10:28) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:28) StringSyntax +//@[20:28) StringComplete |'Budget'| +//@[28:29) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:5130) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:5130) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:184) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:184) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:156) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:156) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:121) ArrayItemSyntax +//@[14:121) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Resources/subscriptions' +//@[16:59) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringSyntax +//@[24:59) StringComplete |'Microsoft.Resources/subscriptions'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4913) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4913) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: 'DeployIfNotExists' +//@[12:39) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:39) StringSyntax +//@[20:39) StringComplete |'DeployIfNotExists'| +//@[39:40) NewLine |\n| + details: { +//@[12:4843) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4843) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Consumption/budgets' +//@[14:51) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:51) StringSyntax +//@[20:51) StringComplete |'Microsoft.Consumption/budgets'| +//@[51:52) NewLine |\n| + deploymentScope: 'Subscription' +//@[14:45) ObjectPropertySyntax +//@[14:29) IdentifierSyntax +//@[14:29) Identifier |deploymentScope| +//@[29:30) Colon |:| +//@[31:45) StringSyntax +//@[31:45) StringComplete |'Subscription'| +//@[45:46) NewLine |\n| + existenceScope: 'Subscription' +//@[14:44) ObjectPropertySyntax +//@[14:28) IdentifierSyntax +//@[14:28) Identifier |existenceScope| +//@[28:29) Colon |:| +//@[30:44) StringSyntax +//@[30:44) StringComplete |'Subscription'| +//@[44:45) NewLine |\n| + existenceCondition: { +//@[14:565) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:565) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:513) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:513) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:160) ArrayItemSyntax +//@[18:160) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Consumption/budgets/amount' +//@[20:65) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'Microsoft.Consumption/budgets/amount'| +//@[65:66) NewLine |\n| + equals: '[parameters(\'amount\')]' +//@[20:54) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:54) StringSyntax +//@[28:54) StringComplete |'[parameters(\'amount\')]'| +//@[54:55) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:166) ArrayItemSyntax +//@[18:166) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Consumption/budgets/timeGrain' +//@[20:68) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:68) StringSyntax +//@[27:68) StringComplete |'Microsoft.Consumption/budgets/timeGrain'| +//@[68:69) NewLine |\n| + equals: '[parameters(\'timeGrain\')]' +//@[20:57) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:57) StringSyntax +//@[28:57) StringComplete |'[parameters(\'timeGrain\')]'| +//@[57:58) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:142) ArrayItemSyntax +//@[18:142) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Consumption/budgets/category' +//@[20:67) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:67) StringSyntax +//@[27:67) StringComplete |'Microsoft.Consumption/budgets/category'| +//@[67:68) NewLine |\n| + equals: 'Cost' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'Cost'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:156) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:156) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3940) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3940) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + location: 'northeurope' +//@[16:39) ObjectPropertySyntax +//@[16:24) IdentifierSyntax +//@[16:24) Identifier |location| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'northeurope'| +//@[39:40) NewLine |\n| + properties: { +//@[16:3856) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3856) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:887) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:887) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + amount: { +//@[20:107) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |amount| +//@[26:27) Colon |:| +//@[28:107) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'amount\')]' +//@[22:55) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:55) StringSyntax +//@[29:55) StringComplete |'[parameters(\'amount\')]'| +//@[55:56) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + timeGrain: { +//@[20:113) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |timeGrain| +//@[29:30) Colon |:| +//@[31:113) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) NewLine |\n| + value: '[parameters(\'timeGrain\')]' +//@[22:58) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:58) StringSyntax +//@[29:58) StringComplete |'[parameters(\'timeGrain\')]'| +//@[58:59) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + firstThreshold: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |firstThreshold| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'firstThreshold\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'firstThreshold\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + secondThreshold: { +//@[20:125) ObjectPropertySyntax +//@[20:35) IdentifierSyntax +//@[20:35) Identifier |secondThreshold| +//@[35:36) Colon |:| +//@[37:125) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + value: '[parameters(\'secondThreshold\')]' +//@[22:64) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:64) StringSyntax +//@[29:64) StringComplete |'[parameters(\'secondThreshold\')]'| +//@[64:65) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + contactEmails: { +//@[20:121) ObjectPropertySyntax +//@[20:33) IdentifierSyntax +//@[20:33) Identifier |contactEmails| +//@[33:34) Colon |:| +//@[35:121) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + value: '[parameters(\'contactEmails\')]' +//@[22:62) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:62) StringSyntax +//@[29:62) StringComplete |'[parameters(\'contactEmails\')]'| +//@[62:63) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + contactRoles: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |contactRoles| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'contactRoles\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'contactRoles\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + contactGroups: { +//@[20:121) ObjectPropertySyntax +//@[20:33) IdentifierSyntax +//@[20:33) Identifier |contactGroups| +//@[33:34) Colon |:| +//@[35:121) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + value: '[parameters(\'contactGroups\')]' +//@[22:62) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:62) StringSyntax +//@[29:62) StringComplete |'[parameters(\'contactGroups\')]'| +//@[62:63) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:2882) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2882) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' +//@[20:122) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:122) StringSyntax +//@[31:122) StringComplete |'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json'| +//@[122:123) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:948) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:948) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + amount: { +//@[22:94) ObjectPropertySyntax +//@[22:28) IdentifierSyntax +//@[22:28) Identifier |amount| +//@[28:29) Colon |:| +//@[30:94) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + timeGrain: { +//@[22:97) ObjectPropertySyntax +//@[22:31) IdentifierSyntax +//@[22:31) Identifier |timeGrain| +//@[31:32) Colon |:| +//@[33:97) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + firstThreshold: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |firstThreshold| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + secondThreshold: { +//@[22:103) ObjectPropertySyntax +//@[22:37) IdentifierSyntax +//@[22:37) Identifier |secondThreshold| +//@[37:38) Colon |:| +//@[39:103) ObjectSyntax +//@[39:40) LeftBrace |{| +//@[40:41) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + contactEmails: { +//@[22:100) ObjectPropertySyntax +//@[22:35) IdentifierSyntax +//@[22:35) Identifier |contactEmails| +//@[35:36) Colon |:| +//@[37:100) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'array' +//@[24:37) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:37) StringSyntax +//@[30:37) StringComplete |'array'| +//@[37:38) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + contactRoles: { +//@[22:99) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |contactRoles| +//@[34:35) Colon |:| +//@[36:99) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'array' +//@[24:37) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:37) StringSyntax +//@[30:37) StringComplete |'array'| +//@[37:38) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + contactGroups: { +//@[22:100) ObjectPropertySyntax +//@[22:35) IdentifierSyntax +//@[22:35) Identifier |contactGroups| +//@[35:36) Colon |:| +//@[37:100) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'array' +//@[24:37) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:37) StringSyntax +//@[30:37) StringComplete |'array'| +//@[37:38) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + startDate: { +//@[22:190) ObjectPropertySyntax +//@[22:31) IdentifierSyntax +//@[22:31) Identifier |startDate| +//@[31:32) Colon |:| +//@[33:190) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + defaultValue: '[concat(utcNow(\'MM\'), \'/01/\', utcNow(\'yyyy\'))]' +//@[24:92) ObjectPropertySyntax +//@[24:36) IdentifierSyntax +//@[24:36) Identifier |defaultValue| +//@[36:37) Colon |:| +//@[38:92) StringSyntax +//@[38:92) StringComplete |'[concat(utcNow(\'MM\'), \'/01/\', utcNow(\'yyyy\'))]'| +//@[92:93) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:1714) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1714) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1659) ArrayItemSyntax +//@[22:1659) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Consumption/budgets' +//@[24:61) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:61) StringSyntax +//@[30:61) StringComplete |'Microsoft.Consumption/budgets'| +//@[61:62) NewLine |\n| + apiVersion: '2019-10-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2019-10-01'| +//@[48:49) NewLine |\n| + name: 'default-sandbox-budget' +//@[24:54) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:54) StringSyntax +//@[30:54) StringComplete |'default-sandbox-budget'| +//@[54:55) NewLine |\n| + properties: { +//@[24:1445) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1445) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + timePeriod: { +//@[26:136) ObjectPropertySyntax +//@[26:36) IdentifierSyntax +//@[26:36) Identifier |timePeriod| +//@[36:37) Colon |:| +//@[38:136) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + startDate: '[parameters(\'startDate\')]' +//@[28:68) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |startDate| +//@[37:38) Colon |:| +//@[39:68) StringSyntax +//@[39:68) StringComplete |'[parameters(\'startDate\')]'| +//@[68:69) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + timeGrain: '[parameters(\'timeGrain\')]' +//@[26:66) ObjectPropertySyntax +//@[26:35) IdentifierSyntax +//@[26:35) Identifier |timeGrain| +//@[35:36) Colon |:| +//@[37:66) StringSyntax +//@[37:66) StringComplete |'[parameters(\'timeGrain\')]'| +//@[66:67) NewLine |\n| + amount: '[parameters(\'amount\')]' +//@[26:60) ObjectPropertySyntax +//@[26:32) IdentifierSyntax +//@[26:32) Identifier |amount| +//@[32:33) Colon |:| +//@[34:60) StringSyntax +//@[34:60) StringComplete |'[parameters(\'amount\')]'| +//@[60:61) NewLine |\n| + category: 'Cost' +//@[26:42) ObjectPropertySyntax +//@[26:34) IdentifierSyntax +//@[26:34) Identifier |category| +//@[34:35) Colon |:| +//@[36:42) StringSyntax +//@[36:42) StringComplete |'Cost'| +//@[42:43) NewLine |\n| + notifications: { +//@[26:1073) ObjectPropertySyntax +//@[26:39) IdentifierSyntax +//@[26:39) Identifier |notifications| +//@[39:40) Colon |:| +//@[41:1073) ObjectSyntax +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + NotificationForExceededBudget1: { +//@[28:500) ObjectPropertySyntax +//@[28:58) IdentifierSyntax +//@[28:58) Identifier |NotificationForExceededBudget1| +//@[58:59) Colon |:| +//@[60:500) ObjectSyntax +//@[60:61) LeftBrace |{| +//@[61:62) NewLine |\n| + enabled: true +//@[30:43) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:43) BooleanLiteralSyntax +//@[39:43) TrueKeyword |true| +//@[43:44) NewLine |\n| + operator: 'GreaterThan' +//@[30:53) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |operator| +//@[38:39) Colon |:| +//@[40:53) StringSyntax +//@[40:53) StringComplete |'GreaterThan'| +//@[53:54) NewLine |\n| + threshold: '[parameters(\'firstThreshold\')]' +//@[30:75) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |threshold| +//@[39:40) Colon |:| +//@[41:75) StringSyntax +//@[41:75) StringComplete |'[parameters(\'firstThreshold\')]'| +//@[75:76) NewLine |\n| + contactEmails: '[parameters(\'contactEmails\')]' +//@[30:78) ObjectPropertySyntax +//@[30:43) IdentifierSyntax +//@[30:43) Identifier |contactEmails| +//@[43:44) Colon |:| +//@[45:78) StringSyntax +//@[45:78) StringComplete |'[parameters(\'contactEmails\')]'| +//@[78:79) NewLine |\n| + contactRoles: '[parameters(\'contactRoles\')]' +//@[30:76) ObjectPropertySyntax +//@[30:42) IdentifierSyntax +//@[30:42) Identifier |contactRoles| +//@[42:43) Colon |:| +//@[44:76) StringSyntax +//@[44:76) StringComplete |'[parameters(\'contactRoles\')]'| +//@[76:77) NewLine |\n| + contactGroups: '[parameters(\'contactGroups\')]' +//@[30:78) ObjectPropertySyntax +//@[30:43) IdentifierSyntax +//@[30:43) Identifier |contactGroups| +//@[43:44) Colon |:| +//@[45:78) StringSyntax +//@[45:78) StringComplete |'[parameters(\'contactGroups\')]'| +//@[78:79) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + NotificationForExceededBudget2: { +//@[28:501) ObjectPropertySyntax +//@[28:58) IdentifierSyntax +//@[28:58) Identifier |NotificationForExceededBudget2| +//@[58:59) Colon |:| +//@[60:501) ObjectSyntax +//@[60:61) LeftBrace |{| +//@[61:62) NewLine |\n| + enabled: true +//@[30:43) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:43) BooleanLiteralSyntax +//@[39:43) TrueKeyword |true| +//@[43:44) NewLine |\n| + operator: 'GreaterThan' +//@[30:53) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |operator| +//@[38:39) Colon |:| +//@[40:53) StringSyntax +//@[40:53) StringComplete |'GreaterThan'| +//@[53:54) NewLine |\n| + threshold: '[parameters(\'secondThreshold\')]' +//@[30:76) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |threshold| +//@[39:40) Colon |:| +//@[41:76) StringSyntax +//@[41:76) StringComplete |'[parameters(\'secondThreshold\')]'| +//@[76:77) NewLine |\n| + contactEmails: '[parameters(\'contactEmails\')]' +//@[30:78) ObjectPropertySyntax +//@[30:43) IdentifierSyntax +//@[30:43) Identifier |contactEmails| +//@[43:44) Colon |:| +//@[45:78) StringSyntax +//@[45:78) StringComplete |'[parameters(\'contactEmails\')]'| +//@[78:79) NewLine |\n| + contactRoles: '[parameters(\'contactRoles\')]' +//@[30:76) ObjectPropertySyntax +//@[30:42) IdentifierSyntax +//@[30:42) Identifier |contactRoles| +//@[42:43) Colon |:| +//@[44:76) StringSyntax +//@[44:76) StringComplete |'[parameters(\'contactRoles\')]'| +//@[76:77) NewLine |\n| + contactGroups: '[parameters(\'contactGroups\')]' +//@[30:78) ObjectPropertySyntax +//@[30:43) IdentifierSyntax +//@[30:43) Identifier |contactGroups| +//@[43:44) Colon |:| +//@[45:78) StringSyntax +//@[45:78) StringComplete |'[parameters(\'contactGroups\')]'| +//@[78:79) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Budget' +//@[6:27) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:27) StringSyntax +//@[12:27) StringComplete |'Deploy-Budget'| +//@[27:28) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:6968) ArrayItemSyntax +//@[4:6968) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:6919) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:6919) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Container Registry to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.' +//@[8:256) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:256) StringSyntax +//@[21:256) StringComplete |'Deploys the diagnostic settings for Container Registry to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.'| +//@[256:257) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Container Registry to Log Analytics workspace' +//@[8:99) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:99) StringSyntax +//@[21:99) StringComplete |'Deploy Diagnostic Settings for Container Registry to Log Analytics workspace'| +//@[99:100) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4579) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4579) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:114) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:114) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.ContainerRegistry/registries' +//@[12:60) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:60) StringSyntax +//@[20:60) StringComplete |'Microsoft.ContainerRegistry/registries'| +//@[60:61) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4432) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4432) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4355) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4355) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3373) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3373) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3329) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3329) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2497) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2497) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1565) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1565) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1510) ArrayItemSyntax +//@[22:1510) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.ContainerRegistry/registries/providers/diagnosticSettings' +//@[24:99) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:99) StringSyntax +//@[30:99) StringComplete |'Microsoft.ContainerRegistry/registries/providers/diagnosticSettings'| +//@[99:100) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:1072) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1072) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:470) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:470) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:201) ArrayItemSyntax +//@[28:201) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ContainerRegistryLoginEvents' +//@[30:70) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:70) StringSyntax +//@[40:70) StringComplete |'ContainerRegistryLoginEvents'| +//@[70:71) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:206) ArrayItemSyntax +//@[28:206) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ContainerRegistryRepositoryEvents' +//@[30:75) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:75) StringSyntax +//@[40:75) StringComplete |'ContainerRegistryRepositoryEvents'| +//@[75:76) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-ACR' +//@[6:36) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:36) StringSyntax +//@[12:36) StringComplete |'Deploy-Diagnostics-ACR'| +//@[36:37) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5944) ArrayItemSyntax +//@[4:5944) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:5887) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:5887) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Activity Log to stream to a Log Analytics workspace when any Activity Log which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with category enabled.' +//@[8:255) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:255) StringSyntax +//@[21:255) StringComplete |'Deploys the diagnostic settings for Activity Log to stream to a Log Analytics workspace when any Activity Log which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with category enabled.'| +//@[255:256) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Activity Log to Log Analytics workspace' +//@[8:93) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:93) StringSyntax +//@[21:93) StringComplete |'Deploy Diagnostic Settings for Activity Log to Log Analytics workspace'| +//@[93:94) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1221) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1221) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:465) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:465) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:400) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:400) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Primary Log Analytics workspace' +//@[14:60) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:60) StringSyntax +//@[27:60) StringComplete |'Primary Log Analytics workspace'| +//@[60:61) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4173) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4173) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:184) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:184) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:156) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:156) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:121) ArrayItemSyntax +//@[14:121) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Resources/subscriptions' +//@[16:59) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringSyntax +//@[24:59) StringComplete |'Microsoft.Resources/subscriptions'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:3956) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:3956) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:3879) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:3879) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + deploymentScope: 'Subscription' +//@[14:45) ObjectPropertySyntax +//@[14:29) IdentifierSyntax +//@[14:29) Identifier |deploymentScope| +//@[29:30) Colon |:| +//@[31:45) StringSyntax +//@[31:45) StringComplete |'Subscription'| +//@[45:46) NewLine |\n| + existenceScope: 'Subscription' +//@[14:44) ObjectPropertySyntax +//@[14:28) IdentifierSyntax +//@[14:28) Identifier |existenceScope| +//@[28:29) Colon |:| +//@[30:44) StringSyntax +//@[30:44) StringComplete |'Subscription'| +//@[44:45) NewLine |\n| + existenceCondition: { +//@[14:429) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:429) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:377) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:377) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + deployment: { +//@[14:2998) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:2998) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + location: 'northeurope' +//@[16:39) ObjectPropertySyntax +//@[16:24) IdentifierSyntax +//@[16:24) Identifier |location| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'northeurope'| +//@[39:40) NewLine |\n| + properties: { +//@[16:2914) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:2914) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2538) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2538) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#' +//@[20:124) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:124) StringSyntax +//@[31:124) StringComplete |'https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#'| +//@[124:125) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:256) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:256) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1994) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1994) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1939) ArrayItemSyntax +//@[22:1939) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + name: 'subscriptionToLa' +//@[24:48) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:48) StringSyntax +//@[30:48) StringComplete |'subscriptionToLa'| +//@[48:49) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[24:69) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:69) StringSyntax +//@[30:69) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[69:70) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + location: 'Global' +//@[24:42) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:42) StringSyntax +//@[34:42) StringComplete |'Global'| +//@[42:43) NewLine |\n| + properties: { +//@[24:1672) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1672) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + logs: [ +//@[26:1536) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:1536) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:187) ArrayItemSyntax +//@[28:187) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Administrative' +//@[30:56) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:56) StringSyntax +//@[40:56) StringComplete |'Administrative'| +//@[56:57) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:181) ArrayItemSyntax +//@[28:181) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Security' +//@[30:50) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:50) StringSyntax +//@[40:50) StringComplete |'Security'| +//@[50:51) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:186) ArrayItemSyntax +//@[28:186) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ServiceHealth' +//@[30:55) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:55) StringSyntax +//@[40:55) StringComplete |'ServiceHealth'| +//@[55:56) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:178) ArrayItemSyntax +//@[28:178) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Alert' +//@[30:47) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:47) StringSyntax +//@[40:47) StringComplete |'Alert'| +//@[47:48) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:187) ArrayItemSyntax +//@[28:187) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Recommendation' +//@[30:56) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:56) StringSyntax +//@[40:56) StringComplete |'Recommendation'| +//@[56:57) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:179) ArrayItemSyntax +//@[28:179) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Policy' +//@[30:48) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:48) StringSyntax +//@[40:48) StringComplete |'Policy'| +//@[48:49) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:182) ArrayItemSyntax +//@[28:182) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Autoscale' +//@[30:51) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:51) StringSyntax +//@[40:51) StringComplete |'Autoscale'| +//@[51:52) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:187) ArrayItemSyntax +//@[28:187) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ResourceHealth' +//@[30:56) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:56) StringSyntax +//@[40:56) StringComplete |'ResourceHealth'| +//@[56:57) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:289) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:289) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-ActivityLog' +//@[6:44) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:44) StringSyntax +//@[12:44) StringComplete |'Deploy-Diagnostics-ActivityLog'| +//@[44:45) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:7912) ArrayItemSyntax +//@[4:7912) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:7863) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:7863) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Kubernetes Service to stream to a Log Analytics workspace when any Kubernetes Service which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.' +//@[8:283) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:283) StringSyntax +//@[21:283) StringComplete |'Deploys the diagnostic settings for Kubernetes Service to stream to a Log Analytics workspace when any Kubernetes Service which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.'| +//@[283:284) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Kubernetes Service to Log Analytics workspace' +//@[8:99) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:99) StringSyntax +//@[21:99) StringComplete |'Deploy Diagnostic Settings for Kubernetes Service to Log Analytics workspace'| +//@[99:100) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:5496) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:5496) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:118) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:118) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.ContainerService/managedClusters' +//@[12:64) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:64) StringSyntax +//@[20:64) StringComplete |'Microsoft.ContainerService/managedClusters'| +//@[64:65) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:5345) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:5345) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:5268) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:5268) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:4286) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:4286) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:4242) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:4242) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:3410) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:3410) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:2478) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:2478) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:2423) ArrayItemSyntax +//@[22:2423) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.ContainerService/managedClusters/providers/diagnosticSettings' +//@[24:103) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:103) StringSyntax +//@[30:103) StringComplete |'Microsoft.ContainerService/managedClusters/providers/diagnosticSettings'| +//@[103:104) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:1981) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1981) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:1379) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:1379) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:183) ArrayItemSyntax +//@[28:183) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'kube-audit' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'kube-audit'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:187) ArrayItemSyntax +//@[28:187) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'kube-apiserver' +//@[30:56) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:56) StringSyntax +//@[40:56) StringComplete |'kube-apiserver'| +//@[56:57) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:196) ArrayItemSyntax +//@[28:196) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'kube-controller-manager' +//@[30:65) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:65) StringSyntax +//@[40:65) StringComplete |'kube-controller-manager'| +//@[65:66) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:187) ArrayItemSyntax +//@[28:187) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'kube-scheduler' +//@[30:56) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:56) StringSyntax +//@[40:56) StringComplete |'kube-scheduler'| +//@[56:57) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:191) ArrayItemSyntax +//@[28:191) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'cluster-autoscaler' +//@[30:60) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:60) StringSyntax +//@[40:60) StringComplete |'cluster-autoscaler'| +//@[60:61) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:178) ArrayItemSyntax +//@[28:178) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'guard' +//@[30:47) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:47) StringSyntax +//@[40:47) StringComplete |'guard'| +//@[47:48) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:189) ArrayItemSyntax +//@[28:189) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'kube-audit-admin' +//@[30:58) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:58) StringSyntax +//@[40:58) StringComplete |'kube-audit-admin'| +//@[58:59) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-AKS' +//@[6:36) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:36) StringSyntax +//@[12:36) StringComplete |'Deploy-Diagnostics-AKS'| +//@[36:37) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:12213) ArrayItemSyntax +//@[4:12213) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + Properties: { +//@[6:12166) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |Properties| +//@[16:17) Colon |:| +//@[18:12166) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy deploys virtual network and peer to the hub' +//@[8:78) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:78) StringSyntax +//@[21:78) StringComplete |'This policy deploys virtual network and peer to the hub'| +//@[78:79) NewLine |\n| + DisplayName: 'Deploys virtual network peering to hub' +//@[8:61) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:61) StringSyntax +//@[21:61) StringComplete |'Deploys virtual network peering to hub'| +//@[61:62) NewLine |\n| + Mode: 'All' +//@[8:19) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:19) StringSyntax +//@[14:19) StringComplete |'All'| +//@[19:20) NewLine |\n| + Parameters: { +//@[8:1031) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1031) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + vNetName: { +//@[10:195) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |vNetName| +//@[18:19) Colon |:| +//@[20:195) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:134) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:134) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'vNetName' +//@[14:37) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:37) StringSyntax +//@[27:37) StringComplete |'vNetName'| +//@[37:38) NewLine |\n| + description: 'Name of the landing zone vNet' +//@[14:58) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:58) StringSyntax +//@[27:58) StringComplete |'Name of the landing zone vNet'| +//@[58:59) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + vNetRgName: { +//@[10:202) ObjectPropertySyntax +//@[10:20) IdentifierSyntax +//@[10:20) Identifier |vNetRgName| +//@[20:21) Colon |:| +//@[22:202) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:139) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:139) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'vNetRgName' +//@[14:39) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:39) StringSyntax +//@[27:39) StringComplete |'vNetRgName'| +//@[39:40) NewLine |\n| + description: 'Name of the landing zone vNet RG' +//@[14:61) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:61) StringSyntax +//@[27:61) StringComplete |'Name of the landing zone vNet RG'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + vNetLocation: { +//@[10:195) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |vNetLocation| +//@[22:23) Colon |:| +//@[24:195) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:130) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:130) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'vNetLocation' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'vNetLocation'| +//@[41:42) NewLine |\n| + description: 'Location for the vNet' +//@[14:50) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:50) StringSyntax +//@[27:50) StringComplete |'Location for the vNet'| +//@[50:51) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + vNetCidrRange: { +//@[10:199) ObjectPropertySyntax +//@[10:23) IdentifierSyntax +//@[10:23) Identifier |vNetCidrRange| +//@[23:24) Colon |:| +//@[25:199) ObjectSyntax +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:133) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:133) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'vNetCidrRange' +//@[14:42) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:42) StringSyntax +//@[27:42) StringComplete |'vNetCidrRange'| +//@[42:43) NewLine |\n| + description: 'CIDR Range for the vNet' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'CIDR Range for the vNet'| +//@[52:53) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + hubResourceId: { +//@[10:204) ObjectPropertySyntax +//@[10:23) IdentifierSyntax +//@[10:23) Identifier |hubResourceId| +//@[23:24) Colon |:| +//@[25:204) ObjectSyntax +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:138) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:138) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'hubResourceId' +//@[14:42) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:42) StringSyntax +//@[27:42) StringComplete |'hubResourceId'| +//@[42:43) NewLine |\n| + description: 'Resource ID for the HUB vNet' +//@[14:57) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:57) StringSyntax +//@[27:57) StringComplete |'Resource ID for the HUB vNet'| +//@[57:58) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:86) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:86) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:29) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringSyntax +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:10858) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:10858) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:184) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:184) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:156) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:156) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:121) ArrayItemSyntax +//@[14:121) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Resources/subscriptions' +//@[16:59) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringSyntax +//@[24:59) StringComplete |'Microsoft.Resources/subscriptions'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:10641) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:10641) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: 'deployIfNotExists' +//@[12:39) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:39) StringSyntax +//@[20:39) StringComplete |'deployIfNotExists'| +//@[39:40) NewLine |\n| + details: { +//@[12:10571) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:10571) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/virtualNetworks' +//@[14:55) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:55) StringSyntax +//@[20:55) StringComplete |'Microsoft.Network/virtualNetworks'| +//@[55:56) NewLine |\n| + name: '[parameters(\'vNetName\')]' +//@[14:48) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:48) StringSyntax +//@[20:48) StringComplete |'[parameters(\'vNetName\')]'| +//@[48:49) NewLine |\n| + deploymentScope: 'Subscription' +//@[14:45) ObjectPropertySyntax +//@[14:29) IdentifierSyntax +//@[14:29) Identifier |deploymentScope| +//@[29:30) Colon |:| +//@[31:45) StringSyntax +//@[31:45) StringComplete |'Subscription'| +//@[45:46) NewLine |\n| + existenceScope: 'ResourceGroup' +//@[14:45) ObjectPropertySyntax +//@[14:28) IdentifierSyntax +//@[14:28) Identifier |existenceScope| +//@[28:29) Colon |:| +//@[30:45) StringSyntax +//@[30:45) StringComplete |'ResourceGroup'| +//@[45:46) NewLine |\n| + ResourceGroupName: '[parameters(\'vNetRgName\')]' +//@[14:63) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |ResourceGroupName| +//@[31:32) Colon |:| +//@[33:63) StringSyntax +//@[33:63) StringComplete |'[parameters(\'vNetRgName\')]'| +//@[63:64) NewLine |\n| + roleDefinitionIds: [ +//@[14:156) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:156) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + existenceCondition: { +//@[14:362) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:362) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:310) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:310) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:128) ArrayItemSyntax +//@[18:128) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'name' +//@[20:33) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:33) StringSyntax +//@[27:33) StringComplete |'name'| +//@[33:34) NewLine |\n| + like: '[parameters(\'vNetName\')]' +//@[20:54) ObjectPropertySyntax +//@[20:24) IdentifierSyntax +//@[20:24) Identifier |like| +//@[24:25) Colon |:| +//@[26:54) StringSyntax +//@[26:54) StringComplete |'[parameters(\'vNetName\')]'| +//@[54:55) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:138) ArrayItemSyntax +//@[18:138) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'location' +//@[20:37) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:37) StringSyntax +//@[27:37) StringComplete |'location'| +//@[37:38) NewLine |\n| + equals: '[parameters(\'vNetLocation\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'vNetLocation\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + deployment: { +//@[14:9753) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:9753) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + location: 'northeurope' +//@[16:39) ObjectPropertySyntax +//@[16:24) IdentifierSyntax +//@[16:24) Identifier |location| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'northeurope'| +//@[39:40) NewLine |\n| + properties: { +//@[16:9669) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:9669) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:643) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:643) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + vNetRgName: { +//@[20:115) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |vNetRgName| +//@[30:31) Colon |:| +//@[32:115) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + value: '[parameters(\'vNetRgName\')]' +//@[22:59) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:59) StringSyntax +//@[29:59) StringComplete |'[parameters(\'vNetRgName\')]'| +//@[59:60) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + vNetName: { +//@[20:111) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |vNetName| +//@[28:29) Colon |:| +//@[30:111) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[parameters(\'vNetName\')]' +//@[22:57) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:57) StringSyntax +//@[29:57) StringComplete |'[parameters(\'vNetName\')]'| +//@[57:58) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + vNetLocation: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |vNetLocation| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'vNetLocation\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'vNetLocation\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + vNetCidrRange: { +//@[20:121) ObjectPropertySyntax +//@[20:33) IdentifierSyntax +//@[20:33) Identifier |vNetCidrRange| +//@[33:34) Colon |:| +//@[35:121) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + value: '[parameters(\'vNetCidrRange\')]' +//@[22:62) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:62) StringSyntax +//@[29:62) StringComplete |'[parameters(\'vNetCidrRange\')]'| +//@[62:63) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + hubResourceId: { +//@[20:121) ObjectPropertySyntax +//@[20:33) IdentifierSyntax +//@[20:33) Identifier |hubResourceId| +//@[33:34) Colon |:| +//@[35:121) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + value: '[parameters(\'hubResourceId\')]' +//@[22:62) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:62) StringSyntax +//@[29:62) StringComplete |'[parameters(\'hubResourceId\')]'| +//@[62:63) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:8939) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:8939) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' +//@[20:122) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:122) StringSyntax +//@[31:122) StringComplete |'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json'| +//@[122:123) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:711) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:711) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + vNetRgName: { +//@[22:98) ObjectPropertySyntax +//@[22:32) IdentifierSyntax +//@[22:32) Identifier |vNetRgName| +//@[32:33) Colon |:| +//@[34:98) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + vNetName: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |vNetName| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + vNetLocation: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |vNetLocation| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + vNetCidrRange: { +//@[22:101) ObjectPropertySyntax +//@[22:35) IdentifierSyntax +//@[22:35) Identifier |vNetCidrRange| +//@[35:36) Colon |:| +//@[37:101) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + vNetPeerUseRemoteGateway: { +//@[22:154) ObjectPropertySyntax +//@[22:46) IdentifierSyntax +//@[22:46) Identifier |vNetPeerUseRemoteGateway| +//@[46:47) Colon |:| +//@[48:154) ObjectSyntax +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + type: 'bool' +//@[24:36) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:36) StringSyntax +//@[30:36) StringComplete |'bool'| +//@[36:37) NewLine |\n| + defaultValue: false +//@[24:43) ObjectPropertySyntax +//@[24:36) IdentifierSyntax +//@[24:36) Identifier |defaultValue| +//@[36:37) Colon |:| +//@[38:43) BooleanLiteralSyntax +//@[38:43) FalseKeyword |false| +//@[43:44) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + hubResourceId: { +//@[22:101) ObjectPropertySyntax +//@[22:35) IdentifierSyntax +//@[22:35) Identifier |hubResourceId| +//@[35:36) Colon |:| +//@[37:101) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:7942) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:7942) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1687) ArrayItemSyntax +//@[22:1687) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:63) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringSyntax +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2020-06-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2020-06-01'| +//@[48:49) NewLine |\n| + name: '[concat(\'es-lz-vnet-\',substring(uniqueString(subscription().id),0,6),\'-rg\')]' +//@[24:112) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:112) StringSyntax +//@[30:112) StringComplete |'[concat(\'es-lz-vnet-\',substring(uniqueString(subscription().id),0,6),\'-rg\')]'| +//@[112:113) NewLine |\n| + location: '[parameters(\'vNetLocation\')]' +//@[24:66) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:66) StringSyntax +//@[34:66) StringComplete |'[parameters(\'vNetLocation\')]'| +//@[66:67) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:1308) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1308) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:45) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringSyntax +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:1198) ObjectPropertySyntax +//@[26:34) IdentifierSyntax +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:1198) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[28:120) ObjectPropertySyntax +//@[28:37) StringSyntax +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:120) StringSyntax +//@[39:120) StringComplete |'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[120:121) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:53) ObjectPropertySyntax +//@[28:42) IdentifierSyntax +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringSyntax +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:42) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:42) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:41) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:41) ObjectSyntax +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:832) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:832) ArraySyntax +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:386) ArrayItemSyntax +//@[30:386) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Resources/resourceGroups' +//@[32:74) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:74) StringSyntax +//@[38:74) StringComplete |'Microsoft.Resources/resourceGroups'| +//@[74:75) NewLine |\n| + apiVersion: '2020-06-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2020-06-01'| +//@[56:57) NewLine |\n| + name: '[parameters(\'vNetRgName\')]' +//@[32:68) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:68) StringSyntax +//@[38:68) StringComplete |'[parameters(\'vNetRgName\')]'| +//@[68:69) NewLine |\n| + location: '[parameters(\'vNetLocation\')]' +//@[32:74) ObjectPropertySyntax +//@[32:40) IdentifierSyntax +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:74) StringSyntax +//@[42:74) StringComplete |'[parameters(\'vNetLocation\')]'| +//@[74:75) NewLine |\n| + properties: {} +//@[32:46) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:46) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) RightBrace |}| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:374) ArrayItemSyntax +//@[30:374) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Resources/resourceGroups' +//@[32:74) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:74) StringSyntax +//@[38:74) StringComplete |'Microsoft.Resources/resourceGroups'| +//@[74:75) NewLine |\n| + apiVersion: '2020-06-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2020-06-01'| +//@[56:57) NewLine |\n| + name: 'NetworkWatcherRG' +//@[32:56) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:56) StringSyntax +//@[38:56) StringComplete |'NetworkWatcherRG'| +//@[56:57) NewLine |\n| + location: '[parameters(\'vNetLocation\')]' +//@[32:74) ObjectPropertySyntax +//@[32:40) IdentifierSyntax +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:74) StringSyntax +//@[42:74) StringComplete |'[parameters(\'vNetLocation\')]'| +//@[74:75) NewLine |\n| + properties: {} +//@[32:46) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:46) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) RightBrace |}| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + outputs: {} +//@[28:39) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |outputs| +//@[35:36) Colon |:| +//@[37:39) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:6199) ArrayItemSyntax +//@[22:6199) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:63) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringSyntax +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2020-06-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2020-06-01'| +//@[48:49) NewLine |\n| + name: '[concat(\'es-lz-vnet-\',substring(uniqueString(subscription().id),0,6))]' +//@[24:104) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:104) StringSyntax +//@[30:104) StringComplete |'[concat(\'es-lz-vnet-\',substring(uniqueString(subscription().id),0,6))]'| +//@[104:105) NewLine |\n| + dependsOn: [ +//@[24:171) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:171) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(\'es-lz-vnet-\',substring(uniqueString(subscription().id),0,6),\'-rg\')]' +//@[26:108) ArrayItemSyntax +//@[26:108) StringSyntax +//@[26:108) StringComplete |'[concat(\'es-lz-vnet-\',substring(uniqueString(subscription().id),0,6),\'-rg\')]'| +//@[108:109) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:5691) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:5691) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:45) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringSyntax +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:5581) ObjectPropertySyntax +//@[26:34) IdentifierSyntax +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:5581) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[28:120) ObjectPropertySyntax +//@[28:37) StringSyntax +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:120) StringSyntax +//@[39:120) StringComplete |'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[120:121) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:53) ObjectPropertySyntax +//@[28:42) IdentifierSyntax +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringSyntax +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:42) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:42) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:41) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:41) ObjectSyntax +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:5215) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:5215) ArraySyntax +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:713) ArrayItemSyntax +//@[30:713) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Network/virtualNetworks' +//@[32:73) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:73) StringSyntax +//@[38:73) StringComplete |'Microsoft.Network/virtualNetworks'| +//@[73:74) NewLine |\n| + apiVersion: '2020-06-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2020-06-01'| +//@[56:57) NewLine |\n| + name: '[parameters(\'vNetName\')]' +//@[32:66) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:66) StringSyntax +//@[38:66) StringComplete |'[parameters(\'vNetName\')]'| +//@[66:67) NewLine |\n| + location: '[parameters(\'vNetLocation\')]' +//@[32:74) ObjectPropertySyntax +//@[32:40) IdentifierSyntax +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:74) StringSyntax +//@[42:74) StringComplete |'[parameters(\'vNetLocation\')]'| +//@[74:75) NewLine |\n| + dependsOn: [] +//@[32:45) ObjectPropertySyntax +//@[32:41) IdentifierSyntax +//@[32:41) Identifier |dependsOn| +//@[41:42) Colon |:| +//@[43:45) ArraySyntax +//@[43:44) LeftSquare |[| +//@[44:45) RightSquare |]| +//@[45:46) NewLine |\n| + properties: { +//@[32:330) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:330) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + addressSpace: { +//@[34:250) ObjectPropertySyntax +//@[34:46) IdentifierSyntax +//@[34:46) Identifier |addressSpace| +//@[46:47) Colon |:| +//@[48:250) ObjectSyntax +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + addressPrefixes: [ +//@[36:164) ObjectPropertySyntax +//@[36:51) IdentifierSyntax +//@[36:51) Identifier |addressPrefixes| +//@[51:52) Colon |:| +//@[53:164) ArraySyntax +//@[53:54) LeftSquare |[| +//@[54:55) NewLine |\n| + '[parameters(\'vNetCidrRange\')]' +//@[38:71) ArrayItemSyntax +//@[38:71) StringSyntax +//@[38:71) StringComplete |'[parameters(\'vNetCidrRange\')]'| +//@[71:72) NewLine |\n| + ] +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:985) ArrayItemSyntax +//@[30:985) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' +//@[32:96) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:96) StringSyntax +//@[38:96) StringComplete |'Microsoft.Network/virtualNetworks/virtualNetworkPeerings'| +//@[96:97) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'vNetName\'), \'/peerToHub\')]' +//@[32:90) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:90) StringSyntax +//@[38:90) StringComplete |'[concat(parameters(\'vNetName\'), \'/peerToHub\')]'| +//@[90:91) NewLine |\n| + dependsOn: [ +//@[32:141) ObjectPropertySyntax +//@[32:41) IdentifierSyntax +//@[32:41) Identifier |dependsOn| +//@[41:42) Colon |:| +//@[43:141) ArraySyntax +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + '[parameters(\'vNetName\')]' +//@[34:62) ArrayItemSyntax +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'vNetName\')]'| +//@[62:63) NewLine |\n| + ] +//@[32:33) RightSquare |]| +//@[33:34) NewLine |\n| + properties: { +//@[32:534) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:534) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + remoteVirtualNetwork: { +//@[34:167) ObjectPropertySyntax +//@[34:54) IdentifierSyntax +//@[34:54) Identifier |remoteVirtualNetwork| +//@[54:55) Colon |:| +//@[56:167) ObjectSyntax +//@[56:57) LeftBrace |{| +//@[57:58) NewLine |\n| + id: '[parameters(\'hubResourceId\')]' +//@[36:73) ObjectPropertySyntax +//@[36:38) IdentifierSyntax +//@[36:38) Identifier |id| +//@[38:39) Colon |:| +//@[40:73) StringSyntax +//@[40:73) StringComplete |'[parameters(\'hubResourceId\')]'| +//@[73:74) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + allowVirtualNetworkAccess: true +//@[34:65) ObjectPropertySyntax +//@[34:59) IdentifierSyntax +//@[34:59) Identifier |allowVirtualNetworkAccess| +//@[59:60) Colon |:| +//@[61:65) BooleanLiteralSyntax +//@[61:65) TrueKeyword |true| +//@[65:66) NewLine |\n| + allowForwardedTraffic: true +//@[34:61) ObjectPropertySyntax +//@[34:55) IdentifierSyntax +//@[34:55) Identifier |allowForwardedTraffic| +//@[55:56) Colon |:| +//@[57:61) BooleanLiteralSyntax +//@[57:61) TrueKeyword |true| +//@[61:62) NewLine |\n| + allowGatewayTransit: false +//@[34:60) ObjectPropertySyntax +//@[34:53) IdentifierSyntax +//@[34:53) Identifier |allowGatewayTransit| +//@[53:54) Colon |:| +//@[55:60) BooleanLiteralSyntax +//@[55:60) FalseKeyword |false| +//@[60:61) NewLine |\n| + useRemoteGateways: '[parameters(\'vNetPeerUseRemoteGateway\')]' +//@[34:97) ObjectPropertySyntax +//@[34:51) IdentifierSyntax +//@[34:51) Identifier |useRemoteGateways| +//@[51:52) Colon |:| +//@[53:97) StringSyntax +//@[53:97) StringComplete |'[parameters(\'vNetPeerUseRemoteGateway\')]'| +//@[97:98) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:3444) ArrayItemSyntax +//@[30:3444) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[32:71) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:71) StringSyntax +//@[38:71) StringComplete |'Microsoft.Resources/deployments'| +//@[71:72) NewLine |\n| + apiVersion: '2020-06-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2020-06-01'| +//@[56:57) NewLine |\n| + name: '[concat(\'es-lz-hub-\',substring(uniqueString(subscription().id),0,6),\'-peering\')]' +//@[32:124) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:124) StringSyntax +//@[38:124) StringComplete |'[concat(\'es-lz-hub-\',substring(uniqueString(subscription().id),0,6),\'-peering\')]'| +//@[124:125) NewLine |\n| + subscriptionId: '[split(parameters(\'hubResourceId\'),\'/\')[2]]' +//@[32:97) ObjectPropertySyntax +//@[32:46) IdentifierSyntax +//@[32:46) Identifier |subscriptionId| +//@[46:47) Colon |:| +//@[48:97) StringSyntax +//@[48:97) StringComplete |'[split(parameters(\'hubResourceId\'),\'/\')[2]]'| +//@[97:98) NewLine |\n| + resourceGroup: '[split(parameters(\'hubResourceId\'),\'/\')[4]]' +//@[32:96) ObjectPropertySyntax +//@[32:45) IdentifierSyntax +//@[32:45) Identifier |resourceGroup| +//@[45:46) Colon |:| +//@[47:96) StringSyntax +//@[47:96) StringComplete |'[split(parameters(\'hubResourceId\'),\'/\')[4]]'| +//@[96:97) NewLine |\n| + dependsOn: [ +//@[32:141) ObjectPropertySyntax +//@[32:41) IdentifierSyntax +//@[32:41) Identifier |dependsOn| +//@[41:42) Colon |:| +//@[43:141) ArraySyntax +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + '[parameters(\'vNetName\')]' +//@[34:62) ArrayItemSyntax +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'vNetName\')]'| +//@[62:63) NewLine |\n| + ] +//@[32:33) RightSquare |]| +//@[33:34) NewLine |\n| + properties: { +//@[32:2789) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:2789) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + mode: 'Incremental' +//@[34:53) ObjectPropertySyntax +//@[34:38) IdentifierSyntax +//@[34:38) Identifier |mode| +//@[38:39) Colon |:| +//@[40:53) StringSyntax +//@[40:53) StringComplete |'Incremental'| +//@[53:54) NewLine |\n| + expressionEvaluationOptions: { +//@[34:151) ObjectPropertySyntax +//@[34:61) IdentifierSyntax +//@[34:61) Identifier |expressionEvaluationOptions| +//@[61:62) Colon |:| +//@[63:151) ObjectSyntax +//@[63:64) LeftBrace |{| +//@[64:65) NewLine |\n| + scope: 'inner' +//@[36:50) ObjectPropertySyntax +//@[36:41) IdentifierSyntax +//@[36:41) Identifier |scope| +//@[41:42) Colon |:| +//@[43:50) StringSyntax +//@[43:50) StringComplete |'inner'| +//@[50:51) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + template: { +//@[34:1936) ObjectPropertySyntax +//@[34:42) IdentifierSyntax +//@[34:42) Identifier |template| +//@[42:43) Colon |:| +//@[44:1936) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[36:128) ObjectPropertySyntax +//@[36:45) StringSyntax +//@[36:45) StringComplete |'$schema'| +//@[45:46) Colon |:| +//@[47:128) StringSyntax +//@[47:128) StringComplete |'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[128:129) NewLine |\n| + contentVersion: '1.0.0.0' +//@[36:61) ObjectPropertySyntax +//@[36:50) IdentifierSyntax +//@[36:50) Identifier |contentVersion| +//@[50:51) Colon |:| +//@[52:61) StringSyntax +//@[52:61) StringComplete |'1.0.0.0'| +//@[61:62) NewLine |\n| + parameters: { +//@[36:508) ObjectPropertySyntax +//@[36:46) IdentifierSyntax +//@[36:46) Identifier |parameters| +//@[46:47) Colon |:| +//@[48:508) ObjectSyntax +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + remoteVirtualNetwork: { +//@[38:216) ObjectPropertySyntax +//@[38:58) IdentifierSyntax +//@[38:58) Identifier |remoteVirtualNetwork| +//@[58:59) Colon |:| +//@[60:216) ObjectSyntax +//@[60:61) LeftBrace |{| +//@[61:62) NewLine |\n| + Type: 'string' +//@[40:54) ObjectPropertySyntax +//@[40:44) IdentifierSyntax +//@[40:44) Identifier |Type| +//@[44:45) Colon |:| +//@[46:54) StringSyntax +//@[46:54) StringComplete |'string'| +//@[54:55) NewLine |\n| + defaultValue: false +//@[40:59) ObjectPropertySyntax +//@[40:52) IdentifierSyntax +//@[40:52) Identifier |defaultValue| +//@[52:53) Colon |:| +//@[54:59) BooleanLiteralSyntax +//@[54:59) FalseKeyword |false| +//@[59:60) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + hubName: { +//@[38:203) ObjectPropertySyntax +//@[38:45) IdentifierSyntax +//@[38:45) Identifier |hubName| +//@[45:46) Colon |:| +//@[47:203) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + Type: 'string' +//@[40:54) ObjectPropertySyntax +//@[40:44) IdentifierSyntax +//@[40:44) Identifier |Type| +//@[44:45) Colon |:| +//@[46:54) StringSyntax +//@[46:54) StringComplete |'string'| +//@[54:55) NewLine |\n| + defaultValue: false +//@[40:59) ObjectPropertySyntax +//@[40:52) IdentifierSyntax +//@[40:52) Identifier |defaultValue| +//@[52:53) Colon |:| +//@[54:59) BooleanLiteralSyntax +//@[54:59) FalseKeyword |false| +//@[59:60) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + variables: {} +//@[36:49) ObjectPropertySyntax +//@[36:45) IdentifierSyntax +//@[36:45) Identifier |variables| +//@[45:46) Colon |:| +//@[47:49) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) RightBrace |}| +//@[49:50) NewLine |\n| + resources: [ +//@[36:1056) ObjectPropertySyntax +//@[36:45) IdentifierSyntax +//@[36:45) Identifier |resources| +//@[45:46) Colon |:| +//@[47:1056) ArraySyntax +//@[47:48) LeftSquare |[| +//@[48:49) NewLine |\n| + { +//@[38:969) ArrayItemSyntax +//@[38:969) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' +//@[40:104) ObjectPropertySyntax +//@[40:44) IdentifierSyntax +//@[40:44) Identifier |type| +//@[44:45) Colon |:| +//@[46:104) StringSyntax +//@[46:104) StringComplete |'Microsoft.Network/virtualNetworks/virtualNetworkPeerings'| +//@[104:105) NewLine |\n| + name: '[[concat(parameters(\'hubName\'),\'/\',last(split(parameters(\'remoteVirtualNetwork\'),\'/\')))]' +//@[40:144) ObjectPropertySyntax +//@[40:44) IdentifierSyntax +//@[40:44) Identifier |name| +//@[44:45) Colon |:| +//@[46:144) StringSyntax +//@[46:144) StringComplete |'[[concat(parameters(\'hubName\'),\'/\',last(split(parameters(\'remoteVirtualNetwork\'),\'/\')))]'| +//@[144:145) NewLine |\n| + apiVersion: '2020-05-01' +//@[40:64) ObjectPropertySyntax +//@[40:50) IdentifierSyntax +//@[40:50) Identifier |apiVersion| +//@[50:51) Colon |:| +//@[52:64) StringSyntax +//@[52:64) StringComplete |'2020-05-01'| +//@[64:65) NewLine |\n| + properties: { +//@[40:574) ObjectPropertySyntax +//@[40:50) IdentifierSyntax +//@[40:50) Identifier |properties| +//@[50:51) Colon |:| +//@[52:574) ObjectSyntax +//@[52:53) LeftBrace |{| +//@[53:54) NewLine |\n| + allowVirtualNetworkAccess: true +//@[42:73) ObjectPropertySyntax +//@[42:67) IdentifierSyntax +//@[42:67) Identifier |allowVirtualNetworkAccess| +//@[67:68) Colon |:| +//@[69:73) BooleanLiteralSyntax +//@[69:73) TrueKeyword |true| +//@[73:74) NewLine |\n| + allowForwardedTraffic: true +//@[42:69) ObjectPropertySyntax +//@[42:63) IdentifierSyntax +//@[42:63) Identifier |allowForwardedTraffic| +//@[63:64) Colon |:| +//@[65:69) BooleanLiteralSyntax +//@[65:69) TrueKeyword |true| +//@[69:70) NewLine |\n| + allowGatewayTransit: true +//@[42:67) ObjectPropertySyntax +//@[42:61) IdentifierSyntax +//@[42:61) Identifier |allowGatewayTransit| +//@[61:62) Colon |:| +//@[63:67) BooleanLiteralSyntax +//@[63:67) TrueKeyword |true| +//@[67:68) NewLine |\n| + useRemoteGateways: false +//@[42:66) ObjectPropertySyntax +//@[42:59) IdentifierSyntax +//@[42:59) Identifier |useRemoteGateways| +//@[59:60) Colon |:| +//@[61:66) BooleanLiteralSyntax +//@[61:66) FalseKeyword |false| +//@[66:67) NewLine |\n| + remoteVirtualNetwork: { +//@[42:199) ObjectPropertySyntax +//@[42:62) IdentifierSyntax +//@[42:62) Identifier |remoteVirtualNetwork| +//@[62:63) Colon |:| +//@[64:199) ObjectSyntax +//@[64:65) LeftBrace |{| +//@[65:66) NewLine |\n| + id: '[[parameters(\'remoteVirtualNetwork\')]' +//@[44:89) ObjectPropertySyntax +//@[44:46) IdentifierSyntax +//@[44:46) Identifier |id| +//@[46:47) Colon |:| +//@[48:89) StringSyntax +//@[48:89) StringComplete |'[[parameters(\'remoteVirtualNetwork\')]'| +//@[89:90) NewLine |\n| + } +//@[42:43) RightBrace |}| +//@[43:44) NewLine |\n| + } +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + ] +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + outputs: {} +//@[36:47) ObjectPropertySyntax +//@[36:43) IdentifierSyntax +//@[36:43) Identifier |outputs| +//@[43:44) Colon |:| +//@[45:47) ObjectSyntax +//@[45:46) LeftBrace |{| +//@[46:47) RightBrace |}| +//@[47:48) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + parameters: { +//@[34:566) ObjectPropertySyntax +//@[34:44) IdentifierSyntax +//@[34:44) Identifier |parameters| +//@[44:45) Colon |:| +//@[46:566) ObjectSyntax +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + remoteVirtualNetwork: { +//@[36:302) ObjectPropertySyntax +//@[36:56) IdentifierSyntax +//@[36:56) Identifier |remoteVirtualNetwork| +//@[56:57) Colon |:| +//@[58:302) ObjectSyntax +//@[58:59) LeftBrace |{| +//@[59:60) NewLine |\n| + value: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'vNetRgName\'), \'/providers/\',\'Microsoft.Network/virtualNetworks/\', parameters(\'vNetName\'))]' +//@[38:204) ObjectPropertySyntax +//@[38:43) IdentifierSyntax +//@[38:43) Identifier |value| +//@[43:44) Colon |:| +//@[45:204) StringSyntax +//@[45:204) StringComplete |'[concat(subscription().id,\'/resourceGroups/\',parameters(\'vNetRgName\'), \'/providers/\',\'Microsoft.Network/virtualNetworks/\', parameters(\'vNetName\'))]'| +//@[204:205) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + hubName: { +//@[36:179) ObjectPropertySyntax +//@[36:43) IdentifierSyntax +//@[36:43) Identifier |hubName| +//@[43:44) Colon |:| +//@[45:179) ObjectSyntax +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + value: '[split(parameters(\'hubResourceId\'),\'/\')[8]]' +//@[38:94) ObjectPropertySyntax +//@[38:43) IdentifierSyntax +//@[38:43) Identifier |value| +//@[43:44) Colon |:| +//@[45:94) StringSyntax +//@[45:94) StringComplete |'[split(parameters(\'hubResourceId\'),\'/\')[8]]'| +//@[94:95) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + outputs: {} +//@[28:39) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |outputs| +//@[35:36) Colon |:| +//@[37:39) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + resourceGroup: '[parameters(\'vNetRgName\')]' +//@[24:69) ObjectPropertySyntax +//@[24:37) IdentifierSyntax +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:69) StringSyntax +//@[39:69) StringComplete |'[parameters(\'vNetRgName\')]'| +//@[69:70) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-VNET-HubSpoke' +//@[6:34) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:34) StringSyntax +//@[12:34) StringComplete |'Deploy-VNET-HubSpoke'| +//@[34:35) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:1237) ArrayItemSyntax +//@[4:1237) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:1187) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:1187) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies the creation of Azure Kubernetes Service non-private clusters' +//@[8:105) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:105) StringSyntax +//@[21:105) StringComplete |'This policy denies the creation of Azure Kubernetes Service non-private clusters'| +//@[105:106) NewLine |\n| + DisplayName: 'Public network access on AKS API should be disabled' +//@[8:74) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:74) StringSyntax +//@[21:74) StringComplete |'Public network access on AKS API should be disabled'| +//@[74:75) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:383) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:383) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:351) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:351) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:110) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:110) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Kubernetes' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Kubernetes'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:480) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:480) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:371) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:371) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:343) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:343) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:130) ArrayItemSyntax +//@[14:130) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.ContainerService/managedClusters' +//@[16:68) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:68) StringSyntax +//@[24:68) StringComplete |'Microsoft.ContainerService/managedClusters'| +//@[68:69) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:177) ArrayItemSyntax +//@[14:177) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.ContainerService/managedClusters/apiServerAccessProfile.enablePrivateCluster' +//@[16:111) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:111) StringSyntax +//@[23:111) StringComplete |'Microsoft.ContainerService/managedClusters/apiServerAccessProfile.enablePrivateCluster'| +//@[111:112) NewLine |\n| + notequals: 'true' +//@[16:33) ObjectPropertySyntax +//@[16:25) IdentifierSyntax +//@[16:25) Identifier |notequals| +//@[25:26) Colon |:| +//@[27:33) StringSyntax +//@[27:33) StringComplete |'true'| +//@[33:34) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:76) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:76) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-PublicEndpoint-Aks' +//@[6:37) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:37) StringSyntax +//@[12:37) StringComplete |'Deny-PublicEndpoint-Aks'| +//@[37:38) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:6947) ArrayItemSyntax +//@[4:6947) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:6886) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:6886) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Analysis Services to stream to a Log Analytics workspace when any Analysis Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:280) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:280) StringSyntax +//@[21:280) StringComplete |'Deploys the diagnostic settings for Analysis Services to stream to a Log Analytics workspace when any Analysis Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[280:281) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Analysis Services to Log Analytics workspace' +//@[8:98) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:98) StringSyntax +//@[21:98) StringComplete |'Deploy Diagnostic Settings for Analysis Services to Log Analytics workspace'| +//@[98:99) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4523) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4523) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:110) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:110) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.AnalysisServices/servers' +//@[12:56) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:56) StringSyntax +//@[20:56) StringComplete |'Microsoft.AnalysisServices/servers'| +//@[56:57) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4380) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4380) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4303) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4303) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3321) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3321) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3277) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3277) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2445) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2445) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1513) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1513) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1458) ArrayItemSyntax +//@[22:1458) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.AnalysisServices/servers/providers/diagnosticSettings' +//@[24:95) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:95) StringSyntax +//@[30:95) StringComplete |'Microsoft.AnalysisServices/servers/providers/diagnosticSettings'| +//@[95:96) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:1024) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1024) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:422) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:422) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:179) ArrayItemSyntax +//@[28:179) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Engine' +//@[30:48) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:48) StringSyntax +//@[40:48) StringComplete |'Engine'| +//@[48:49) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:180) ArrayItemSyntax +//@[28:180) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Service' +//@[30:49) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:49) StringSyntax +//@[40:49) StringComplete |'Service'| +//@[49:50) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-AnalysisService' +//@[6:48) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:48) StringSyntax +//@[12:48) StringComplete |'Deploy-Diagnostics-AnalysisService'| +//@[48:49) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:7964) ArrayItemSyntax +//@[4:7964) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:7911) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:7911) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for API Management to stream to a Log Analytics workspace when any API Management which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:274) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:274) StringSyntax +//@[21:274) StringComplete |'Deploys the diagnostic settings for API Management to stream to a Log Analytics workspace when any API Management which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[274:275) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for API Management to Log Analytics workspace' +//@[8:95) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:95) StringSyntax +//@[21:95) StringComplete |'Deploy Diagnostic Settings for API Management to Log Analytics workspace'| +//@[95:96) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:5557) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:5557) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:107) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:107) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.ApiManagement/service' +//@[12:53) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:53) StringSyntax +//@[20:53) StringComplete |'Microsoft.ApiManagement/service'| +//@[53:54) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:5417) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:5417) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:5340) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:5340) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:4358) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:4358) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:4314) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:4314) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:3482) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:3482) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:2550) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:2550) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:2495) ArrayItemSyntax +//@[22:2495) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.ApiManagement/service/providers/diagnosticSettings' +//@[24:92) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:92) StringSyntax +//@[30:92) StringComplete |'Microsoft.ApiManagement/service/providers/diagnosticSettings'| +//@[92:93) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:2064) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:2064) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:1681) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:1681) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:406) ArrayItemSyntax +//@[28:406) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Gateway Requests' +//@[30:58) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:58) StringSyntax +//@[40:58) StringComplete |'Gateway Requests'| +//@[58:59) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:398) ArrayItemSyntax +//@[28:398) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Capacity' +//@[30:50) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:50) StringSyntax +//@[40:50) StringComplete |'Capacity'| +//@[50:51) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:405) ArrayItemSyntax +//@[28:405) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'EventHub Events' +//@[30:57) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:57) StringSyntax +//@[40:57) StringComplete |'EventHub Events'| +//@[57:58) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:404) ArrayItemSyntax +//@[28:404) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Network Status' +//@[30:56) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:56) StringSyntax +//@[40:56) StringComplete |'Network Status'| +//@[56:57) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:246) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:246) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:184) ArrayItemSyntax +//@[28:184) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'GatewayLogs' +//@[30:53) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:53) StringSyntax +//@[40:53) StringComplete |'GatewayLogs'| +//@[53:54) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-APIMgmt' +//@[6:40) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:40) StringSyntax +//@[12:40) StringComplete |'Deploy-Diagnostics-APIMgmt'| +//@[40:41) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:1209) ArrayItemSyntax +//@[4:1209) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:1160) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:1160) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy enables you to restrict that Application Gateways is always deployed with WAF enabled' +//@[8:120) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:120) StringSyntax +//@[21:120) StringComplete |'This policy enables you to restrict that Application Gateways is always deployed with WAF enabled'| +//@[120:121) NewLine |\n| + DisplayName: 'Application Gateway should be deployed with WAF enabled' +//@[8:78) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:78) StringSyntax +//@[21:78) StringComplete |'Application Gateway should be deployed with WAF enabled'| +//@[78:79) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:383) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:383) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:351) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:351) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:110) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:110) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:86) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:86) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:29) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringSyntax +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:437) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:437) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:328) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:328) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:300) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:300) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:125) ArrayItemSyntax +//@[14:125) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Network/applicationGateways' +//@[16:63) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:63) StringSyntax +//@[24:63) StringComplete |'Microsoft.Network/applicationGateways'| +//@[63:64) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:139) ArrayItemSyntax +//@[14:139) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.Network/applicationGateways/sku.name' +//@[16:71) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:71) StringSyntax +//@[23:71) StringComplete |'Microsoft.Network/applicationGateways/sku.name'| +//@[71:72) NewLine |\n| + notequals: 'WAF_v2' +//@[16:35) ObjectPropertySyntax +//@[16:25) IdentifierSyntax +//@[16:25) Identifier |notequals| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'WAF_v2'| +//@[35:36) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:76) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:76) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-AppGW-Without-WAF' +//@[6:36) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:36) StringSyntax +//@[12:36) StringComplete |'Deny-AppGW-Without-WAF'| +//@[36:37) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:7211) ArrayItemSyntax +//@[4:7211) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:7147) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:7147) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Application Gateway to stream to a Log Analytics workspace when any Application Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:284) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:284) StringSyntax +//@[21:284) StringComplete |'Deploys the diagnostic settings for Application Gateway to stream to a Log Analytics workspace when any Application Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[284:285) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Application Gateway to Log Analytics workspace' +//@[8:100) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:100) StringSyntax +//@[21:100) StringComplete |'Deploy Diagnostic Settings for Application Gateway to Log Analytics workspace'| +//@[100:101) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4778) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4778) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:113) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:113) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/applicationGateways' +//@[12:59) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Network/applicationGateways'| +//@[59:60) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4632) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4632) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4555) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4555) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3573) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3573) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3529) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3529) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2697) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2697) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1765) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1765) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1710) ArrayItemSyntax +//@[22:1710) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Network/applicationGateways/providers/diagnosticSettings' +//@[24:98) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:98) StringSyntax +//@[30:98) StringComplete |'Microsoft.Network/applicationGateways/providers/diagnosticSettings'| +//@[98:99) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:1273) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1273) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:671) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:671) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:200) ArrayItemSyntax +//@[28:200) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ApplicationGatewayAccessLog' +//@[30:69) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:69) StringSyntax +//@[40:69) StringComplete |'ApplicationGatewayAccessLog'| +//@[69:70) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:205) ArrayItemSyntax +//@[28:205) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ApplicationGatewayPerformanceLog' +//@[30:74) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:74) StringSyntax +//@[40:74) StringComplete |'ApplicationGatewayPerformanceLog'| +//@[74:75) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:202) ArrayItemSyntax +//@[28:202) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ApplicationGatewayFirewallLog' +//@[30:71) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:71) StringSyntax +//@[40:71) StringComplete |'ApplicationGatewayFirewallLog'| +//@[71:72) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-ApplicationGateway' +//@[6:51) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:51) StringSyntax +//@[12:51) StringComplete |'Deploy-Diagnostics-ApplicationGateway'| +//@[51:52) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5795) ArrayItemSyntax +//@[4:5795) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:5736) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:5736) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for App Service Plan to stream to a Log Analytics workspace when any App Service Plan which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:278) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:278) StringSyntax +//@[21:278) StringComplete |'Deploys the diagnostic settings for App Service Plan to stream to a Log Analytics workspace when any App Service Plan which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[278:279) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for App Service Plan to Log Analytics workspace' +//@[8:97) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:97) StringSyntax +//@[21:97) StringComplete |'Deploy Diagnostic Settings for App Service Plan to Log Analytics workspace'| +//@[97:98) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1472) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1472) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:3744) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:3744) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:101) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:101) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Web/serverfarms' +//@[12:47) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:47) StringSyntax +//@[20:47) StringComplete |'Microsoft.Web/serverfarms'| +//@[47:48) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:3610) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:3610) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:3533) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:3533) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:432) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:432) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:380) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:380) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:2706) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:2706) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:2662) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:2662) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:1948) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:1948) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:557) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:557) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1116) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1116) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1061) ArrayItemSyntax +//@[22:1061) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Web/serverfarms/providers/diagnosticSettings' +//@[24:86) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:86) StringSyntax +//@[30:86) StringComplete |'Microsoft.Web/serverfarms/providers/diagnosticSettings'| +//@[86:87) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:636) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:636) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [] +//@[26:34) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:34) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) RightSquare |]| +//@[34:35) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:627) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:627) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-WebServerFarm' +//@[6:46) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:46) StringSyntax +//@[12:46) StringComplete |'Deploy-Diagnostics-WebServerFarm'| +//@[46:47) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:8475) ArrayItemSyntax +//@[4:8475) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:8422) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:8422) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Web App to stream to a Log Analytics workspace when any Web App which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:260) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:260) StringSyntax +//@[21:260) StringComplete |'Deploys the diagnostic settings for Web App to stream to a Log Analytics workspace when any Web App which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[260:261) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for App Service to Log Analytics workspace' +//@[8:92) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:92) StringSyntax +//@[21:92) StringComplete |'Deploy Diagnostic Settings for App Service to Log Analytics workspace'| +//@[92:93) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:6085) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:6085) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:288) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:288) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:260) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:260) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:107) ArrayItemSyntax +//@[14:107) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Web/sites' +//@[16:45) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:45) StringSyntax +//@[24:45) StringComplete |'Microsoft.Web/sites'| +//@[45:46) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:117) ArrayItemSyntax +//@[14:117) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + value: '[field(\'kind\')]' +//@[16:42) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:42) StringSyntax +//@[23:42) StringComplete |'[field(\'kind\')]'| +//@[42:43) NewLine |\n| + notContains: 'functionapp' +//@[16:42) ObjectPropertySyntax +//@[16:27) IdentifierSyntax +//@[16:27) Identifier |notContains| +//@[27:28) Colon |:| +//@[29:42) StringSyntax +//@[29:42) StringComplete |'functionapp'| +//@[42:43) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:5764) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:5764) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:5687) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:5687) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:4705) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:4705) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:4661) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:4661) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:3829) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:3829) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:2897) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:2897) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:2842) ArrayItemSyntax +//@[22:2842) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Web/sites/providers/diagnosticSettings' +//@[24:80) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:80) StringSyntax +//@[30:80) StringComplete |'Microsoft.Web/sites/providers/diagnosticSettings'| +//@[80:81) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:2423) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:2423) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:1821) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:1821) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:205) ArrayItemSyntax +//@[28:205) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AppServiceAntivirusScanAuditLogs' +//@[30:74) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:74) StringSyntax +//@[40:74) StringComplete |'AppServiceAntivirusScanAuditLogs'| +//@[74:75) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:191) ArrayItemSyntax +//@[28:191) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AppServiceHTTPLogs' +//@[30:60) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:60) StringSyntax +//@[40:60) StringComplete |'AppServiceHTTPLogs'| +//@[60:61) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:194) ArrayItemSyntax +//@[28:194) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AppServiceConsoleLogs' +//@[30:63) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:63) StringSyntax +//@[40:63) StringComplete |'AppServiceConsoleLogs'| +//@[63:64) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:191) ArrayItemSyntax +//@[28:191) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AppServiceHTTPLogs' +//@[30:60) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:60) StringSyntax +//@[40:60) StringComplete |'AppServiceHTTPLogs'| +//@[60:61) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:190) ArrayItemSyntax +//@[28:190) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AppServiceAppLogs' +//@[30:59) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:59) StringSyntax +//@[40:59) StringComplete |'AppServiceAppLogs'| +//@[59:60) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:196) ArrayItemSyntax +//@[28:196) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AppServiceFileAuditLogs' +//@[30:65) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:65) StringSyntax +//@[40:65) StringComplete |'AppServiceFileAuditLogs'| +//@[65:66) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:192) ArrayItemSyntax +//@[28:192) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AppServiceAuditLogs' +//@[30:61) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:61) StringSyntax +//@[40:61) StringComplete |'AppServiceAuditLogs'| +//@[61:62) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:197) ArrayItemSyntax +//@[28:197) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AppServiceIPSecAuditLogs' +//@[30:66) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:66) StringSyntax +//@[40:66) StringComplete |'AppServiceIPSecAuditLogs'| +//@[66:67) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:195) ArrayItemSyntax +//@[28:195) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AppServicePlatformLogs' +//@[30:64) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:64) StringSyntax +//@[40:64) StringComplete |'AppServicePlatformLogs'| +//@[64:65) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-Website' +//@[6:40) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:40) StringSyntax +//@[12:40) StringComplete |'Deploy-Diagnostics-Website'| +//@[40:41) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:12874) ArrayItemSyntax +//@[4:12874) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:12828) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:12828) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the Azure Defender settings in Azure Security Center for the specific services.' +//@[8:112) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:112) StringSyntax +//@[21:112) StringComplete |'Deploys the Azure Defender settings in Azure Security Center for the specific services.'| +//@[112:113) NewLine |\n| + DisplayName: 'Deploy Azure Defender settings in Azure Security Center.' +//@[8:79) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:79) StringSyntax +//@[21:79) StringComplete |'Deploy Azure Defender settings in Azure Security Center.'| +//@[79:80) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:3272) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:3272) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + pricingTierVMs: { +//@[10:306) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |pricingTierVMs| +//@[24:25) Colon |:| +//@[26:306) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:113) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:113) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'pricingTierVMs' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'pricingTierVMs'| +//@[43:44) NewLine |\n| + description: null +//@[14:31) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullLiteralSyntax +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + allowedValues: [ +//@[12:88) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:88) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Standard' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Standard'| +//@[24:25) NewLine |\n| + 'Free' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Free'| +//@[20:21) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Standard' +//@[12:36) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:36) StringSyntax +//@[26:36) StringComplete |'Standard'| +//@[36:37) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + pricingTierSqlServers: { +//@[10:320) ObjectPropertySyntax +//@[10:31) IdentifierSyntax +//@[10:31) Identifier |pricingTierSqlServers| +//@[31:32) Colon |:| +//@[33:320) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:120) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:120) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'pricingTierSqlServers' +//@[14:50) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:50) StringSyntax +//@[27:50) StringComplete |'pricingTierSqlServers'| +//@[50:51) NewLine |\n| + description: null +//@[14:31) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullLiteralSyntax +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + allowedValues: [ +//@[12:88) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:88) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Standard' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Standard'| +//@[24:25) NewLine |\n| + 'Free' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Free'| +//@[20:21) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Standard' +//@[12:36) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:36) StringSyntax +//@[26:36) StringComplete |'Standard'| +//@[36:37) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + pricingTierAppServices: { +//@[10:322) ObjectPropertySyntax +//@[10:32) IdentifierSyntax +//@[10:32) Identifier |pricingTierAppServices| +//@[32:33) Colon |:| +//@[34:322) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:121) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:121) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'pricingTierAppServices' +//@[14:51) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:51) StringSyntax +//@[27:51) StringComplete |'pricingTierAppServices'| +//@[51:52) NewLine |\n| + description: null +//@[14:31) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullLiteralSyntax +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + allowedValues: [ +//@[12:88) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:88) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Standard' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Standard'| +//@[24:25) NewLine |\n| + 'Free' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Free'| +//@[20:21) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Standard' +//@[12:36) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:36) StringSyntax +//@[26:36) StringComplete |'Standard'| +//@[36:37) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + pricingTierStorageAccounts: { +//@[10:330) ObjectPropertySyntax +//@[10:36) IdentifierSyntax +//@[10:36) Identifier |pricingTierStorageAccounts| +//@[36:37) Colon |:| +//@[38:330) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:125) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:125) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'pricingTierStorageAccounts' +//@[14:55) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:55) StringSyntax +//@[27:55) StringComplete |'pricingTierStorageAccounts'| +//@[55:56) NewLine |\n| + description: null +//@[14:31) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullLiteralSyntax +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + allowedValues: [ +//@[12:88) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:88) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Standard' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Standard'| +//@[24:25) NewLine |\n| + 'Free' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Free'| +//@[20:21) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Standard' +//@[12:36) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:36) StringSyntax +//@[26:36) StringComplete |'Standard'| +//@[36:37) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + pricingTierContainerRegistry: { +//@[10:334) ObjectPropertySyntax +//@[10:38) IdentifierSyntax +//@[10:38) Identifier |pricingTierContainerRegistry| +//@[38:39) Colon |:| +//@[40:334) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:127) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:127) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'pricingTierContainerRegistry' +//@[14:57) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:57) StringSyntax +//@[27:57) StringComplete |'pricingTierContainerRegistry'| +//@[57:58) NewLine |\n| + description: null +//@[14:31) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullLiteralSyntax +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + allowedValues: [ +//@[12:88) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:88) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Standard' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Standard'| +//@[24:25) NewLine |\n| + 'Free' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Free'| +//@[20:21) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Standard' +//@[12:36) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:36) StringSyntax +//@[26:36) StringComplete |'Standard'| +//@[36:37) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + pricingTierKeyVaults: { +//@[10:318) ObjectPropertySyntax +//@[10:30) IdentifierSyntax +//@[10:30) Identifier |pricingTierKeyVaults| +//@[30:31) Colon |:| +//@[32:318) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:119) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:119) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'pricingTierKeyVaults' +//@[14:49) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:49) StringSyntax +//@[27:49) StringComplete |'pricingTierKeyVaults'| +//@[49:50) NewLine |\n| + description: null +//@[14:31) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullLiteralSyntax +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + allowedValues: [ +//@[12:88) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:88) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Standard' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Standard'| +//@[24:25) NewLine |\n| + 'Free' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Free'| +//@[20:21) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Standard' +//@[12:36) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:36) StringSyntax +//@[26:36) StringComplete |'Standard'| +//@[36:37) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + pricingTierKubernetesService: { +//@[10:334) ObjectPropertySyntax +//@[10:38) IdentifierSyntax +//@[10:38) Identifier |pricingTierKubernetesService| +//@[38:39) Colon |:| +//@[40:334) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:127) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:127) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'pricingTierKubernetesService' +//@[14:57) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:57) StringSyntax +//@[27:57) StringComplete |'pricingTierKubernetesService'| +//@[57:58) NewLine |\n| + description: null +//@[14:31) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullLiteralSyntax +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + allowedValues: [ +//@[12:88) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:88) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Standard' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Standard'| +//@[24:25) NewLine |\n| + 'Free' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Free'| +//@[20:21) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Standard' +//@[12:36) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:36) StringSyntax +//@[26:36) StringComplete |'Standard'| +//@[36:37) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + pricingTierDns: { +//@[10:306) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |pricingTierDns| +//@[24:25) Colon |:| +//@[26:306) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:113) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:113) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'pricingTierDns' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'pricingTierDns'| +//@[43:44) NewLine |\n| + description: null +//@[14:31) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullLiteralSyntax +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + allowedValues: [ +//@[12:88) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:88) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Standard' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Standard'| +//@[24:25) NewLine |\n| + 'Free' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Free'| +//@[20:21) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Standard' +//@[12:36) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:36) StringSyntax +//@[26:36) StringComplete |'Standard'| +//@[36:37) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + pricingTierArm: { +//@[10:306) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |pricingTierArm| +//@[24:25) Colon |:| +//@[26:306) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:113) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:113) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'pricingTierArm' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'pricingTierArm'| +//@[43:44) NewLine |\n| + description: null +//@[14:31) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullLiteralSyntax +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + allowedValues: [ +//@[12:88) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:88) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Standard' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Standard'| +//@[24:25) NewLine |\n| + 'Free' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Free'| +//@[20:21) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Standard' +//@[12:36) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:36) StringSyntax +//@[26:36) StringComplete |'Standard'| +//@[36:37) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:94) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:94) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Security Center' +//@[10:37) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:37) StringSyntax +//@[20:37) StringComplete |'Security Center'| +//@[37:38) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:9215) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:9215) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:184) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:184) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:156) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:156) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:121) ArrayItemSyntax +//@[14:121) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Resources/subscriptions' +//@[16:59) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringSyntax +//@[24:59) StringComplete |'Microsoft.Resources/subscriptions'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:8998) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:8998) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:8921) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:8921) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Security/pricings' +//@[14:49) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:49) StringSyntax +//@[20:49) StringComplete |'Microsoft.Security/pricings'| +//@[49:50) NewLine |\n| + deploymentScope: 'subscription' +//@[14:45) ObjectPropertySyntax +//@[14:29) IdentifierSyntax +//@[14:29) Identifier |deploymentScope| +//@[29:30) Colon |:| +//@[31:45) StringSyntax +//@[31:45) StringComplete |'subscription'| +//@[45:46) NewLine |\n| + existenceScope: 'subscription' +//@[14:44) ObjectPropertySyntax +//@[14:28) IdentifierSyntax +//@[14:28) Identifier |existenceScope| +//@[28:29) Colon |:| +//@[30:44) StringSyntax +//@[30:44) StringComplete |'subscription'| +//@[44:45) NewLine |\n| + roleDefinitionIds: [ +//@[14:156) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:156) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/fb1c8493-542b-48eb-b624-b4c8fea62acd' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/fb1c8493-542b-48eb-b624-b4c8fea62acd'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + existenceCondition: { +//@[14:374) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:374) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:322) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:322) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:147) ArrayItemSyntax +//@[18:147) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Security/pricings/pricingTier' +//@[20:68) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:68) StringSyntax +//@[27:68) StringComplete |'Microsoft.Security/pricings/pricingTier'| +//@[68:69) NewLine |\n| + equals: 'Standard' +//@[20:38) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:38) StringSyntax +//@[28:38) StringComplete |'Standard'| +//@[38:39) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:131) ArrayItemSyntax +//@[18:131) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'type' +//@[20:33) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:33) StringSyntax +//@[27:33) StringComplete |'type'| +//@[33:34) NewLine |\n| + equals: 'Microsoft.Security/pricings' +//@[20:57) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:57) StringSyntax +//@[28:57) StringComplete |'Microsoft.Security/pricings'| +//@[57:58) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + deployment: { +//@[14:8211) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:8211) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + location: 'northeurope' +//@[16:39) ObjectPropertySyntax +//@[16:24) IdentifierSyntax +//@[16:24) Identifier |location| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'northeurope'| +//@[39:40) NewLine |\n| + properties: { +//@[16:8127) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:8127) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:1289) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:1289) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + pricingTierVMs: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |pricingTierVMs| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'pricingTierVMs\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'pricingTierVMs\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + pricingTierSqlServers: { +//@[20:137) ObjectPropertySyntax +//@[20:41) IdentifierSyntax +//@[20:41) Identifier |pricingTierSqlServers| +//@[41:42) Colon |:| +//@[43:137) ObjectSyntax +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + value: '[parameters(\'pricingTierSqlServers\')]' +//@[22:70) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:70) StringSyntax +//@[29:70) StringComplete |'[parameters(\'pricingTierSqlServers\')]'| +//@[70:71) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + pricingTierAppServices: { +//@[20:139) ObjectPropertySyntax +//@[20:42) IdentifierSyntax +//@[20:42) Identifier |pricingTierAppServices| +//@[42:43) Colon |:| +//@[44:139) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + value: '[parameters(\'pricingTierAppServices\')]' +//@[22:71) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:71) StringSyntax +//@[29:71) StringComplete |'[parameters(\'pricingTierAppServices\')]'| +//@[71:72) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + pricingTierStorageAccounts: { +//@[20:147) ObjectPropertySyntax +//@[20:46) IdentifierSyntax +//@[20:46) Identifier |pricingTierStorageAccounts| +//@[46:47) Colon |:| +//@[48:147) ObjectSyntax +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + value: '[parameters(\'pricingTierStorageAccounts\')]' +//@[22:75) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:75) StringSyntax +//@[29:75) StringComplete |'[parameters(\'pricingTierStorageAccounts\')]'| +//@[75:76) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + pricingTierContainerRegistry: { +//@[20:151) ObjectPropertySyntax +//@[20:48) IdentifierSyntax +//@[20:48) Identifier |pricingTierContainerRegistry| +//@[48:49) Colon |:| +//@[50:151) ObjectSyntax +//@[50:51) LeftBrace |{| +//@[51:52) NewLine |\n| + value: '[parameters(\'pricingTierContainerRegistry\')]' +//@[22:77) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:77) StringSyntax +//@[29:77) StringComplete |'[parameters(\'pricingTierContainerRegistry\')]'| +//@[77:78) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + pricingTierKeyVaults: { +//@[20:135) ObjectPropertySyntax +//@[20:40) IdentifierSyntax +//@[20:40) Identifier |pricingTierKeyVaults| +//@[40:41) Colon |:| +//@[42:135) ObjectSyntax +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + value: '[parameters(\'pricingTierKeyVaults\')]' +//@[22:69) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:69) StringSyntax +//@[29:69) StringComplete |'[parameters(\'pricingTierKeyVaults\')]'| +//@[69:70) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + pricingTierKubernetesService: { +//@[20:151) ObjectPropertySyntax +//@[20:48) IdentifierSyntax +//@[20:48) Identifier |pricingTierKubernetesService| +//@[48:49) Colon |:| +//@[50:151) ObjectSyntax +//@[50:51) LeftBrace |{| +//@[51:52) NewLine |\n| + value: '[parameters(\'pricingTierKubernetesService\')]' +//@[22:77) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:77) StringSyntax +//@[29:77) StringComplete |'[parameters(\'pricingTierKubernetesService\')]'| +//@[77:78) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + pricingTierDns: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |pricingTierDns| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'pricingTierDns\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'pricingTierDns\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + pricingTierArm: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |pricingTierArm| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'pricingTierArm\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'pricingTierArm\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:6751) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:6751) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:112) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:112) StringSyntax +//@[31:112) StringComplete |'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[112:113) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:2139) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:2139) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + pricingTierVMs: { +//@[22:220) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |pricingTierVMs| +//@[36:37) Colon |:| +//@[38:220) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:117) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:117) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'pricingTierVMs' +//@[26:55) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:55) StringSyntax +//@[39:55) StringComplete |'pricingTierVMs'| +//@[55:56) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + pricingTierSqlServers: { +//@[22:234) ObjectPropertySyntax +//@[22:43) IdentifierSyntax +//@[22:43) Identifier |pricingTierSqlServers| +//@[43:44) Colon |:| +//@[45:234) ObjectSyntax +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:124) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:124) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'pricingTierSqlServers' +//@[26:62) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:62) StringSyntax +//@[39:62) StringComplete |'pricingTierSqlServers'| +//@[62:63) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + pricingTierAppServices: { +//@[22:236) ObjectPropertySyntax +//@[22:44) IdentifierSyntax +//@[22:44) Identifier |pricingTierAppServices| +//@[44:45) Colon |:| +//@[46:236) ObjectSyntax +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:125) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:125) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'pricingTierAppServices' +//@[26:63) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:63) StringSyntax +//@[39:63) StringComplete |'pricingTierAppServices'| +//@[63:64) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + pricingTierStorageAccounts: { +//@[22:244) ObjectPropertySyntax +//@[22:48) IdentifierSyntax +//@[22:48) Identifier |pricingTierStorageAccounts| +//@[48:49) Colon |:| +//@[50:244) ObjectSyntax +//@[50:51) LeftBrace |{| +//@[51:52) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:129) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:129) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'pricingTierStorageAccounts' +//@[26:67) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:67) StringSyntax +//@[39:67) StringComplete |'pricingTierStorageAccounts'| +//@[67:68) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + pricingTierContainerRegistry: { +//@[22:237) ObjectPropertySyntax +//@[22:50) IdentifierSyntax +//@[22:50) Identifier |pricingTierContainerRegistry| +//@[50:51) Colon |:| +//@[52:237) ObjectSyntax +//@[52:53) LeftBrace |{| +//@[53:54) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:120) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:120) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'ContainerRegistry' +//@[26:58) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:58) StringSyntax +//@[39:58) StringComplete |'ContainerRegistry'| +//@[58:59) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + pricingTierKeyVaults: { +//@[22:221) ObjectPropertySyntax +//@[22:42) IdentifierSyntax +//@[22:42) Identifier |pricingTierKeyVaults| +//@[42:43) Colon |:| +//@[44:221) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:112) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:112) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'KeyVaults' +//@[26:50) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:50) StringSyntax +//@[39:50) StringComplete |'KeyVaults'| +//@[50:51) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + pricingTierKubernetesService: { +//@[22:237) ObjectPropertySyntax +//@[22:50) IdentifierSyntax +//@[22:50) Identifier |pricingTierKubernetesService| +//@[50:51) Colon |:| +//@[52:237) ObjectSyntax +//@[52:53) LeftBrace |{| +//@[53:54) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:120) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:120) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'KubernetesService' +//@[26:58) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:58) StringSyntax +//@[39:58) StringComplete |'KubernetesService'| +//@[58:59) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + pricingTierDns: { +//@[22:223) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |pricingTierDns| +//@[36:37) Colon |:| +//@[38:223) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:120) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:120) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'KubernetesService' +//@[26:58) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:58) StringSyntax +//@[39:58) StringComplete |'KubernetesService'| +//@[58:59) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + pricingTierArm: { +//@[22:223) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |pricingTierArm| +//@[36:37) Colon |:| +//@[38:223) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:120) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:120) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'KubernetesService' +//@[26:58) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:58) StringSyntax +//@[39:58) StringComplete |'KubernetesService'| +//@[58:59) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:4336) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:4336) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:342) ArrayItemSyntax +//@[22:342) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Security/pricings' +//@[24:59) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:59) StringSyntax +//@[30:59) StringComplete |'Microsoft.Security/pricings'| +//@[59:60) NewLine |\n| + apiVersion: '2018-06-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2018-06-01'| +//@[48:49) NewLine |\n| + name: 'VirtualMachines' +//@[24:47) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:47) StringSyntax +//@[30:47) StringComplete |'VirtualMachines'| +//@[47:48) NewLine |\n| + properties: { +//@[24:137) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:137) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + pricingTier: '[parameters(\'pricingTierVMs\')]' +//@[26:73) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |pricingTier| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'pricingTierVMs\')]'| +//@[73:74) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:503) ArrayItemSyntax +//@[22:503) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Security/pricings' +//@[24:59) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:59) StringSyntax +//@[30:59) StringComplete |'Microsoft.Security/pricings'| +//@[59:60) NewLine |\n| + apiVersion: '2018-06-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2018-06-01'| +//@[48:49) NewLine |\n| + name: 'StorageAccounts' +//@[24:47) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:47) StringSyntax +//@[30:47) StringComplete |'StorageAccounts'| +//@[47:48) NewLine |\n| + dependsOn: [ +//@[24:148) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:148) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(\'Microsoft.Security/pricings/VirtualMachines\')]' +//@[26:85) ArrayItemSyntax +//@[26:85) StringSyntax +//@[26:85) StringComplete |'[concat(\'Microsoft.Security/pricings/VirtualMachines\')]'| +//@[85:86) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:149) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:149) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + pricingTier: '[parameters(\'pricingTierStorageAccounts\')]' +//@[26:85) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |pricingTier| +//@[37:38) Colon |:| +//@[39:85) StringSyntax +//@[39:85) StringComplete |'[parameters(\'pricingTierStorageAccounts\')]'| +//@[85:86) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:495) ArrayItemSyntax +//@[22:495) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Security/pricings' +//@[24:59) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:59) StringSyntax +//@[30:59) StringComplete |'Microsoft.Security/pricings'| +//@[59:60) NewLine |\n| + apiVersion: '2018-06-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2018-06-01'| +//@[48:49) NewLine |\n| + name: 'AppServices' +//@[24:43) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:43) StringSyntax +//@[30:43) StringComplete |'AppServices'| +//@[43:44) NewLine |\n| + dependsOn: [ +//@[24:148) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:148) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(\'Microsoft.Security/pricings/StorageAccounts\')]' +//@[26:85) ArrayItemSyntax +//@[26:85) StringSyntax +//@[26:85) StringComplete |'[concat(\'Microsoft.Security/pricings/StorageAccounts\')]'| +//@[85:86) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:145) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:145) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + pricingTier: '[parameters(\'pricingTierAppServices\')]' +//@[26:81) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |pricingTier| +//@[37:38) Colon |:| +//@[39:81) StringSyntax +//@[39:81) StringComplete |'[parameters(\'pricingTierAppServices\')]'| +//@[81:82) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:489) ArrayItemSyntax +//@[22:489) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Security/pricings' +//@[24:59) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:59) StringSyntax +//@[30:59) StringComplete |'Microsoft.Security/pricings'| +//@[59:60) NewLine |\n| + apiVersion: '2018-06-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2018-06-01'| +//@[48:49) NewLine |\n| + name: 'SqlServers' +//@[24:42) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:42) StringSyntax +//@[30:42) StringComplete |'SqlServers'| +//@[42:43) NewLine |\n| + dependsOn: [ +//@[24:144) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:144) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(\'Microsoft.Security/pricings/AppServices\')]' +//@[26:81) ArrayItemSyntax +//@[26:81) StringSyntax +//@[26:81) StringComplete |'[concat(\'Microsoft.Security/pricings/AppServices\')]'| +//@[81:82) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:144) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:144) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + pricingTier: '[parameters(\'pricingTierSqlServers\')]' +//@[26:80) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |pricingTier| +//@[37:38) Colon |:| +//@[39:80) StringSyntax +//@[39:80) StringComplete |'[parameters(\'pricingTierSqlServers\')]'| +//@[80:81) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:486) ArrayItemSyntax +//@[22:486) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Security/pricings' +//@[24:59) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:59) StringSyntax +//@[30:59) StringComplete |'Microsoft.Security/pricings'| +//@[59:60) NewLine |\n| + apiVersion: '2018-06-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2018-06-01'| +//@[48:49) NewLine |\n| + name: 'KeyVaults' +//@[24:41) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:41) StringSyntax +//@[30:41) StringComplete |'KeyVaults'| +//@[41:42) NewLine |\n| + dependsOn: [ +//@[24:143) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:143) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(\'Microsoft.Security/pricings/SqlServers\')]' +//@[26:80) ArrayItemSyntax +//@[26:80) StringSyntax +//@[26:80) StringComplete |'[concat(\'Microsoft.Security/pricings/SqlServers\')]'| +//@[80:81) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:143) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:143) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + pricingTier: '[parameters(\'pricingTierKeyVaults\')]' +//@[26:79) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |pricingTier| +//@[37:38) Colon |:| +//@[39:79) StringSyntax +//@[39:79) StringComplete |'[parameters(\'pricingTierKeyVaults\')]'| +//@[79:80) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:501) ArrayItemSyntax +//@[22:501) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Security/pricings' +//@[24:59) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:59) StringSyntax +//@[30:59) StringComplete |'Microsoft.Security/pricings'| +//@[59:60) NewLine |\n| + apiVersion: '2018-06-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2018-06-01'| +//@[48:49) NewLine |\n| + name: 'KubernetesService' +//@[24:49) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:49) StringSyntax +//@[30:49) StringComplete |'KubernetesService'| +//@[49:50) NewLine |\n| + dependsOn: [ +//@[24:142) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:142) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(\'Microsoft.Security/pricings/KeyVaults\')]' +//@[26:79) ArrayItemSyntax +//@[26:79) StringSyntax +//@[26:79) StringComplete |'[concat(\'Microsoft.Security/pricings/KeyVaults\')]'| +//@[79:80) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:151) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:151) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + pricingTier: '[parameters(\'pricingTierKubernetesService\')]' +//@[26:87) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |pricingTier| +//@[37:38) Colon |:| +//@[39:87) StringSyntax +//@[39:87) StringComplete |'[parameters(\'pricingTierKubernetesService\')]'| +//@[87:88) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:509) ArrayItemSyntax +//@[22:509) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Security/pricings' +//@[24:59) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:59) StringSyntax +//@[30:59) StringComplete |'Microsoft.Security/pricings'| +//@[59:60) NewLine |\n| + apiVersion: '2018-06-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2018-06-01'| +//@[48:49) NewLine |\n| + name: 'ContainerRegistry' +//@[24:49) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:49) StringSyntax +//@[30:49) StringComplete |'ContainerRegistry'| +//@[49:50) NewLine |\n| + dependsOn: [ +//@[24:150) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:150) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(\'Microsoft.Security/pricings/KubernetesService\')]' +//@[26:87) ArrayItemSyntax +//@[26:87) StringSyntax +//@[26:87) StringComplete |'[concat(\'Microsoft.Security/pricings/KubernetesService\')]'| +//@[87:88) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:151) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:151) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + pricingTier: '[parameters(\'pricingTierContainerRegistry\')]' +//@[26:87) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |pricingTier| +//@[37:38) Colon |:| +//@[39:87) StringSyntax +//@[39:87) StringComplete |'[parameters(\'pricingTierContainerRegistry\')]'| +//@[87:88) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:481) ArrayItemSyntax +//@[22:481) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Security/pricings' +//@[24:59) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:59) StringSyntax +//@[30:59) StringComplete |'Microsoft.Security/pricings'| +//@[59:60) NewLine |\n| + apiVersion: '2018-06-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2018-06-01'| +//@[48:49) NewLine |\n| + name: 'Dns' +//@[24:35) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:35) StringSyntax +//@[30:35) StringComplete |'Dns'| +//@[35:36) NewLine |\n| + dependsOn: [ +//@[24:150) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:150) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(\'Microsoft.Security/pricings/ContainerRegistry\')]' +//@[26:87) ArrayItemSyntax +//@[26:87) StringSyntax +//@[26:87) StringComplete |'[concat(\'Microsoft.Security/pricings/ContainerRegistry\')]'| +//@[87:88) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:137) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:137) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + pricingTier: '[parameters(\'pricingTierDns\')]' +//@[26:73) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |pricingTier| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'pricingTierDns\')]'| +//@[73:74) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:467) ArrayItemSyntax +//@[22:467) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Security/pricings' +//@[24:59) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:59) StringSyntax +//@[30:59) StringComplete |'Microsoft.Security/pricings'| +//@[59:60) NewLine |\n| + apiVersion: '2018-06-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2018-06-01'| +//@[48:49) NewLine |\n| + name: 'Arm' +//@[24:35) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:35) StringSyntax +//@[30:35) StringComplete |'Arm'| +//@[35:36) NewLine |\n| + dependsOn: [ +//@[24:136) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:136) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(\'Microsoft.Security/pricings/Dns\')]' +//@[26:73) ArrayItemSyntax +//@[26:73) StringSyntax +//@[26:73) StringComplete |'[concat(\'Microsoft.Security/pricings/Dns\')]'| +//@[73:74) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:137) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:137) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + pricingTier: '[parameters(\'pricingTierArm\')]' +//@[26:73) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |pricingTier| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'pricingTierArm\')]'| +//@[73:74) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-ASC-Standard' +//@[6:33) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:33) StringSyntax +//@[12:33) StringComplete |'Deploy-ASC-Standard'| +//@[33:34) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:1436) ArrayItemSyntax +//@[4:1436) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:1386) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:1386) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies the creation of child resources on the Automation Account' +//@[8:99) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:99) StringSyntax +//@[21:99) StringComplete |'This policy denies the creation of child resources on the Automation Account'| +//@[99:100) NewLine |\n| + DisplayName: 'No child resources in Automation Account' +//@[8:63) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:63) StringSyntax +//@[21:63) StringComplete |'No child resources in Automation Account'| +//@[63:64) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:383) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:383) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:351) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:351) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:110) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:110) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Automation' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Automation'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:696) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:696) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:587) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:587) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:559) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:559) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:524) ArrayItemSyntax +//@[14:524) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + in: [ +//@[16:462) ObjectPropertySyntax +//@[16:18) IdentifierSyntax +//@[16:18) Identifier |in| +//@[18:19) Colon |:| +//@[20:462) ArraySyntax +//@[20:21) LeftSquare |[| +//@[21:22) NewLine |\n| + 'Microsoft.Automation/automationAccounts/runbooks' +//@[18:68) ArrayItemSyntax +//@[18:68) StringSyntax +//@[18:68) StringComplete |'Microsoft.Automation/automationAccounts/runbooks'| +//@[68:69) NewLine |\n| + 'Microsoft.Automation/automationAccounts/variables' +//@[18:69) ArrayItemSyntax +//@[18:69) StringSyntax +//@[18:69) StringComplete |'Microsoft.Automation/automationAccounts/variables'| +//@[69:70) NewLine |\n| + 'Microsoft.Automation/automationAccounts/modules' +//@[18:67) ArrayItemSyntax +//@[18:67) StringSyntax +//@[18:67) StringComplete |'Microsoft.Automation/automationAccounts/modules'| +//@[67:68) NewLine |\n| + 'Microsoft.Automation/automationAccounts/credentials' +//@[18:71) ArrayItemSyntax +//@[18:71) StringSyntax +//@[18:71) StringComplete |'Microsoft.Automation/automationAccounts/credentials'| +//@[71:72) NewLine |\n| + 'Microsoft.Automation/automationAccounts/connections' +//@[18:71) ArrayItemSyntax +//@[18:71) StringSyntax +//@[18:71) StringComplete |'Microsoft.Automation/automationAccounts/connections'| +//@[71:72) NewLine |\n| + 'Microsoft.Automation/automationAccount/certificates' +//@[18:71) ArrayItemSyntax +//@[18:71) StringSyntax +//@[18:71) StringComplete |'Microsoft.Automation/automationAccount/certificates'| +//@[71:72) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:76) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:76) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-AA-child-resources' +//@[6:37) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:37) StringSyntax +//@[12:37) StringComplete |'Deny-AA-child-resources'| +//@[37:38) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:7114) ArrayItemSyntax +//@[4:7114) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:7066) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:7066) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Automation to stream to a Log Analytics workspace when any Automation which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:266) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:266) StringSyntax +//@[21:266) StringComplete |'Deploys the diagnostic settings for Automation to stream to a Log Analytics workspace when any Automation which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[266:267) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Automation to Log Analytics workspace' +//@[8:91) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:91) StringSyntax +//@[21:91) StringComplete |'Deploy Diagnostic Settings for Automation to Log Analytics workspace'| +//@[91:92) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4724) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4724) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:115) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:115) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Automation/automationAccounts' +//@[12:61) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:61) StringSyntax +//@[20:61) StringComplete |'Microsoft.Automation/automationAccounts'| +//@[61:62) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4576) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4576) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4499) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4499) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3517) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3517) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3473) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3473) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2641) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2641) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1709) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1709) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1654) ArrayItemSyntax +//@[22:1654) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Automation/automationAccounts/providers/diagnosticSettings' +//@[24:100) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:100) StringSyntax +//@[30:100) StringComplete |'Microsoft.Automation/automationAccounts/providers/diagnosticSettings'| +//@[100:101) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:1215) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1215) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:613) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:613) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:180) ArrayItemSyntax +//@[28:180) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'JobLogs' +//@[30:49) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:49) StringSyntax +//@[40:49) StringComplete |'JobLogs'| +//@[49:50) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:183) ArrayItemSyntax +//@[28:183) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'JobStreams' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'JobStreams'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:186) ArrayItemSyntax +//@[28:186) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DscNodeStatus' +//@[30:55) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:55) StringSyntax +//@[40:55) StringComplete |'DscNodeStatus'| +//@[55:56) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-AA' +//@[6:35) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:35) StringSyntax +//@[12:35) StringComplete |'Deploy-Diagnostics-AA'| +//@[35:36) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5026) ArrayItemSyntax +//@[4:5026) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:4977) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:4977) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + displayName: 'RDP access from the Internet should be blocked' +//@[8:69) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |displayName| +//@[19:20) Colon |:| +//@[21:69) StringSyntax +//@[21:69) StringComplete |'RDP access from the Internet should be blocked'| +//@[69:70) NewLine |\n| + description: 'This policy denies any network security rule that allows RDP access from Internet' +//@[8:104) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |description| +//@[19:20) Colon |:| +//@[21:104) StringSyntax +//@[21:104) StringComplete |'This policy denies any network security rule that allows RDP access from Internet'| +//@[104:105) NewLine |\n| + mode: 'All' +//@[8:19) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |mode| +//@[12:13) Colon |:| +//@[14:19) StringSyntax +//@[14:19) StringComplete |'All'| +//@[19:20) NewLine |\n| + metadata: { +//@[8:86) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:86) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:29) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringSyntax +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + parameters: { +//@[8:383) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |parameters| +//@[18:19) Colon |:| +//@[20:383) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:351) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:351) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + allowedValues: [ +//@[12:110) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:110) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + policyRule: { +//@[8:4283) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |policyRule| +//@[18:19) Colon |:| +//@[20:4283) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:4174) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:4174) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:4146) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:4146) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:141) ArrayItemSyntax +//@[14:141) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Network/networkSecurityGroups/securityRules' +//@[16:79) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:79) StringSyntax +//@[24:79) StringComplete |'Microsoft.Network/networkSecurityGroups/securityRules'| +//@[79:80) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:3969) ArrayItemSyntax +//@[14:3969) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[16:3937) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:3937) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:165) ArrayItemSyntax +//@[18:165) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Network/networkSecurityGroups/securityRules/access' +//@[20:89) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:89) StringSyntax +//@[27:89) StringComplete |'Microsoft.Network/networkSecurityGroups/securityRules/access'| +//@[89:90) NewLine |\n| + equals: 'Allow' +//@[20:35) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:35) StringSyntax +//@[28:35) StringComplete |'Allow'| +//@[35:36) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:170) ArrayItemSyntax +//@[18:170) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Network/networkSecurityGroups/securityRules/direction' +//@[20:92) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:92) StringSyntax +//@[27:92) StringComplete |'Microsoft.Network/networkSecurityGroups/securityRules/direction'| +//@[92:93) NewLine |\n| + equals: 'Inbound' +//@[20:37) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:37) StringSyntax +//@[28:37) StringComplete |'Inbound'| +//@[37:38) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:2550) ArrayItemSyntax +//@[18:2550) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + anyOf: [ +//@[20:2510) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |anyOf| +//@[25:26) Colon |:| +//@[27:2510) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + { +//@[22:191) ArrayItemSyntax +//@[22:191) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange' +//@[24:107) ObjectPropertySyntax +//@[24:29) IdentifierSyntax +//@[24:29) Identifier |field| +//@[29:30) Colon |:| +//@[31:107) StringSyntax +//@[31:107) StringComplete |'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange'| +//@[107:108) NewLine |\n| + equals: '*' +//@[24:35) ObjectPropertySyntax +//@[24:30) IdentifierSyntax +//@[24:30) Identifier |equals| +//@[30:31) Colon |:| +//@[32:35) StringSyntax +//@[32:35) StringComplete |'*'| +//@[35:36) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:194) ArrayItemSyntax +//@[22:194) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange' +//@[24:107) ObjectPropertySyntax +//@[24:29) IdentifierSyntax +//@[24:29) Identifier |field| +//@[29:30) Colon |:| +//@[31:107) StringSyntax +//@[31:107) StringComplete |'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange'| +//@[107:108) NewLine |\n| + equals: '3389' +//@[24:38) ObjectPropertySyntax +//@[24:30) IdentifierSyntax +//@[24:30) Identifier |equals| +//@[30:31) Colon |:| +//@[32:38) StringSyntax +//@[32:38) StringComplete |'3389'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:612) ArrayItemSyntax +//@[22:612) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[if(and(not(empty(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'))), contains(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'),\'-\')), and(lessOrEquals(int(first(split(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'), \'-\'))),3389),greaterOrEquals(int(last(split(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'), \'-\'))),3389)), \'false\')]' +//@[24:525) ObjectPropertySyntax +//@[24:29) IdentifierSyntax +//@[24:29) Identifier |value| +//@[29:30) Colon |:| +//@[31:525) StringSyntax +//@[31:525) StringComplete |'[if(and(not(empty(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'))), contains(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'),\'-\')), and(lessOrEquals(int(first(split(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'), \'-\'))),3389),greaterOrEquals(int(last(split(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'), \'-\'))),3389)), \'false\')]'| +//@[525:526) NewLine |\n| + equals: 'true' +//@[24:38) ObjectPropertySyntax +//@[24:30) IdentifierSyntax +//@[24:30) Identifier |equals| +//@[30:31) Colon |:| +//@[32:38) StringSyntax +//@[32:38) StringComplete |'true'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:936) ArrayItemSyntax +//@[22:936) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + count: { +//@[24:853) ObjectPropertySyntax +//@[24:29) IdentifierSyntax +//@[24:29) Identifier |count| +//@[29:30) Colon |:| +//@[31:853) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) NewLine |\n| + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]' +//@[26:113) ObjectPropertySyntax +//@[26:31) IdentifierSyntax +//@[26:31) Identifier |field| +//@[31:32) Colon |:| +//@[33:113) StringSyntax +//@[33:113) StringComplete |'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]'| +//@[113:114) NewLine |\n| + where: { +//@[26:680) ObjectPropertySyntax +//@[26:31) IdentifierSyntax +//@[26:31) Identifier |where| +//@[31:32) Colon |:| +//@[33:680) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[if(and(not(empty(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')))), contains(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')),\'-\')), and(lessOrEquals(int(first(split(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')), \'-\'))),3389),greaterOrEquals(int(last(split(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')), \'-\'))),3389)) , \'false\')]' +//@[28:574) ObjectPropertySyntax +//@[28:33) IdentifierSyntax +//@[28:33) Identifier |value| +//@[33:34) Colon |:| +//@[35:574) StringSyntax +//@[35:574) StringComplete |'[if(and(not(empty(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')))), contains(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')),\'-\')), and(lessOrEquals(int(first(split(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')), \'-\'))),3389),greaterOrEquals(int(last(split(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')), \'-\'))),3389)) , \'false\')]'| +//@[574:575) NewLine |\n| + equals: 'true' +//@[28:42) ObjectPropertySyntax +//@[28:34) IdentifierSyntax +//@[28:34) Identifier |equals| +//@[34:35) Colon |:| +//@[36:42) StringSyntax +//@[36:42) StringComplete |'true'| +//@[42:43) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + greater: 0 +//@[24:34) ObjectPropertySyntax +//@[24:31) IdentifierSyntax +//@[24:31) Identifier |greater| +//@[31:32) Colon |:| +//@[33:34) IntegerLiteralSyntax +//@[33:34) Integer |0| +//@[34:35) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:259) ArrayItemSyntax +//@[22:259) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + not: { +//@[24:211) ObjectPropertySyntax +//@[24:27) IdentifierSyntax +//@[24:27) Identifier |not| +//@[27:28) Colon |:| +//@[29:211) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) NewLine |\n| + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]' +//@[26:113) ObjectPropertySyntax +//@[26:31) IdentifierSyntax +//@[26:31) Identifier |field| +//@[31:32) Colon |:| +//@[33:113) StringSyntax +//@[33:113) StringComplete |'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]'| +//@[113:114) NewLine |\n| + notEquals: '*' +//@[26:40) ObjectPropertySyntax +//@[26:35) IdentifierSyntax +//@[26:35) Identifier |notEquals| +//@[35:36) Colon |:| +//@[37:40) StringSyntax +//@[37:40) StringComplete |'*'| +//@[40:41) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:262) ArrayItemSyntax +//@[22:262) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + not: { +//@[24:214) ObjectPropertySyntax +//@[24:27) IdentifierSyntax +//@[24:27) Identifier |not| +//@[27:28) Colon |:| +//@[29:214) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) NewLine |\n| + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]' +//@[26:113) ObjectPropertySyntax +//@[26:31) IdentifierSyntax +//@[26:31) Identifier |field| +//@[31:32) Colon |:| +//@[33:113) StringSyntax +//@[33:113) StringComplete |'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]'| +//@[113:114) NewLine |\n| + notEquals: '3389' +//@[26:43) ObjectPropertySyntax +//@[26:35) IdentifierSyntax +//@[26:35) Identifier |notEquals| +//@[35:36) Colon |:| +//@[37:43) StringSyntax +//@[37:43) StringComplete |'3389'| +//@[43:44) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:1006) ArrayItemSyntax +//@[18:1006) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + anyOf: [ +//@[20:966) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |anyOf| +//@[25:26) Colon |:| +//@[27:966) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + { +//@[22:190) ArrayItemSyntax +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + field: 'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefix' +//@[24:106) ObjectPropertySyntax +//@[24:29) IdentifierSyntax +//@[24:29) Identifier |field| +//@[29:30) Colon |:| +//@[31:106) StringSyntax +//@[31:106) StringComplete |'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefix'| +//@[106:107) NewLine |\n| + equals: '*' +//@[24:35) ObjectPropertySyntax +//@[24:30) IdentifierSyntax +//@[24:30) Identifier |equals| +//@[30:31) Colon |:| +//@[32:35) StringSyntax +//@[32:35) StringComplete |'*'| +//@[35:36) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:197) ArrayItemSyntax +//@[22:197) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + field: 'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefix' +//@[24:106) ObjectPropertySyntax +//@[24:29) IdentifierSyntax +//@[24:29) Identifier |field| +//@[29:30) Colon |:| +//@[31:106) StringSyntax +//@[31:106) StringComplete |'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefix'| +//@[106:107) NewLine |\n| + equals: 'Internet' +//@[24:42) ObjectPropertySyntax +//@[24:30) IdentifierSyntax +//@[24:30) Identifier |equals| +//@[30:31) Colon |:| +//@[32:42) StringSyntax +//@[32:42) StringComplete |'Internet'| +//@[42:43) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:259) ArrayItemSyntax +//@[22:259) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + not: { +//@[24:211) ObjectPropertySyntax +//@[24:27) IdentifierSyntax +//@[24:27) Identifier |not| +//@[27:28) Colon |:| +//@[29:211) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) NewLine |\n| + field: 'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefixes[*]' +//@[26:113) ObjectPropertySyntax +//@[26:31) IdentifierSyntax +//@[26:31) Identifier |field| +//@[31:32) Colon |:| +//@[33:113) StringSyntax +//@[33:113) StringComplete |'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefixes[*]'| +//@[113:114) NewLine |\n| + notEquals: '*' +//@[26:40) ObjectPropertySyntax +//@[26:35) IdentifierSyntax +//@[26:35) Identifier |notEquals| +//@[35:36) Colon |:| +//@[37:40) StringSyntax +//@[37:40) StringComplete |'*'| +//@[40:41) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:266) ArrayItemSyntax +//@[22:266) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + not: { +//@[24:218) ObjectPropertySyntax +//@[24:27) IdentifierSyntax +//@[24:27) Identifier |not| +//@[27:28) Colon |:| +//@[29:218) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) NewLine |\n| + field: 'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefixes[*]' +//@[26:113) ObjectPropertySyntax +//@[26:31) IdentifierSyntax +//@[26:31) Identifier |field| +//@[31:32) Colon |:| +//@[33:113) StringSyntax +//@[33:113) StringComplete |'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefixes[*]'| +//@[113:114) NewLine |\n| + notEquals: 'Internet' +//@[26:47) ObjectPropertySyntax +//@[26:35) IdentifierSyntax +//@[26:35) Identifier |notEquals| +//@[35:36) Colon |:| +//@[37:47) StringSyntax +//@[37:47) StringComplete |'Internet'| +//@[47:48) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:76) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:76) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-RDP-From-Internet' +//@[6:36) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:36) StringSyntax +//@[12:36) StringComplete |'Deny-RDP-From-Internet'| +//@[36:37) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:6714) ArrayItemSyntax +//@[4:6714) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:6663) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:6663) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Batch to stream to a Log Analytics workspace when any Batch which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:256) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:256) StringSyntax +//@[21:256) StringComplete |'Deploys the diagnostic settings for Batch to stream to a Log Analytics workspace when any Batch which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[256:257) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Batch to Log Analytics workspace' +//@[8:86) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:86) StringSyntax +//@[21:86) StringComplete |'Deploy Diagnostic Settings for Batch to Log Analytics workspace'| +//@[86:87) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4336) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4336) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:105) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:105) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Batch/batchAccounts' +//@[12:51) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:51) StringSyntax +//@[20:51) StringComplete |'Microsoft.Batch/batchAccounts'| +//@[51:52) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4198) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4198) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4121) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4121) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3139) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3139) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3095) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3095) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2263) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2263) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1331) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1331) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1276) ArrayItemSyntax +//@[22:1276) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Batch/batchAccounts/providers/diagnosticSettings' +//@[24:90) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:90) StringSyntax +//@[30:90) StringComplete |'Microsoft.Batch/batchAccounts/providers/diagnosticSettings'| +//@[90:91) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:847) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:847) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:245) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:245) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:183) ArrayItemSyntax +//@[28:183) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ServiceLog' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'ServiceLog'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-Batch' +//@[6:38) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:38) StringSyntax +//@[12:38) StringComplete |'Deploy-Diagnostics-Batch'| +//@[38:39) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5565) ArrayItemSyntax +//@[4:5565) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:5507) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:5507) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for CDN Endpoint to stream to a Log Analytics workspace when any CDN Endpoint which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:270) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:270) StringSyntax +//@[21:270) StringComplete |'Deploys the diagnostic settings for CDN Endpoint to stream to a Log Analytics workspace when any CDN Endpoint which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[270:271) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for CDN Endpoint to Log Analytics workspace' +//@[8:93) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:93) StringSyntax +//@[21:93) StringComplete |'Deploy Diagnostic Settings for CDN Endpoint to Log Analytics workspace'| +//@[93:94) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1463) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1463) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:3536) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:3536) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:108) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:108) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Cdn/profiles/endpoints' +//@[12:54) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:54) StringSyntax +//@[20:54) StringComplete |'Microsoft.Cdn/profiles/endpoints'| +//@[54:55) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:3395) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:3395) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:3318) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:3318) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:429) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:429) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:377) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:377) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:2494) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:2494) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:2450) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:2450) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:1738) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:1738) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:554) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:554) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:909) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:909) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:854) ArrayItemSyntax +//@[22:854) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Cdn/profiles/endpoints/providers/diagnosticSettings' +//@[24:93) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:93) StringSyntax +//@[30:93) StringComplete |'Microsoft.Cdn/profiles/endpoints/providers/diagnosticSettings'| +//@[93:94) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:422) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:422) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [] +//@[26:37) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + logs: [ +//@[26:248) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:248) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:186) ArrayItemSyntax +//@[28:186) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'CoreAnalytics' +//@[30:55) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:55) StringSyntax +//@[40:55) StringComplete |'CoreAnalytics'| +//@[55:56) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:625) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:625) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:110) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:110) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'fullName\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'fullName\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-CDNEndpoints' +//@[6:45) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:45) StringSyntax +//@[12:45) StringComplete |'Deploy-Diagnostics-CDNEndpoints'| +//@[45:46) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:7142) ArrayItemSyntax +//@[4:7142) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:7079) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:7079) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Cognitive Services to stream to a Log Analytics workspace when any Cognitive Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:282) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:282) StringSyntax +//@[21:282) StringComplete |'Deploys the diagnostic settings for Cognitive Services to stream to a Log Analytics workspace when any Cognitive Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[282:283) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Cognitive Services to Log Analytics workspace' +//@[8:99) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:99) StringSyntax +//@[21:99) StringComplete |'Deploy Diagnostic Settings for Cognitive Services to Log Analytics workspace'| +//@[99:100) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4713) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4713) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:112) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:112) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.CognitiveServices/accounts' +//@[12:58) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:58) StringSyntax +//@[20:58) StringComplete |'Microsoft.CognitiveServices/accounts'| +//@[58:59) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4568) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4568) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4491) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4491) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3509) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3509) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3465) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3465) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2633) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2633) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1701) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1701) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1646) ArrayItemSyntax +//@[22:1646) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.CognitiveServices/accounts/providers/diagnosticSettings' +//@[24:97) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:97) StringSyntax +//@[30:97) StringComplete |'Microsoft.CognitiveServices/accounts/providers/diagnosticSettings'| +//@[97:98) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:1210) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1210) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:608) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:608) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:178) ArrayItemSyntax +//@[28:178) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Audit' +//@[30:47) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:47) StringSyntax +//@[40:47) StringComplete |'Audit'| +//@[47:48) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:188) ArrayItemSyntax +//@[28:188) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'RequestResponse' +//@[30:57) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:57) StringSyntax +//@[40:57) StringComplete |'RequestResponse'| +//@[57:58) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:178) ArrayItemSyntax +//@[28:178) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Trace' +//@[30:47) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:47) StringSyntax +//@[40:47) StringComplete |'Trace'| +//@[47:48) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-CognitiveServices' +//@[6:50) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:50) StringSyntax +//@[12:50) StringComplete |'Deploy-Diagnostics-CognitiveServices'| +//@[50:51) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:8102) ArrayItemSyntax +//@[4:8102) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:8048) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:8048) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Cosmos DB to stream to a Log Analytics workspace when any Cosmos DB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:264) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:264) StringSyntax +//@[21:264) StringComplete |'Deploys the diagnostic settings for Cosmos DB to stream to a Log Analytics workspace when any Cosmos DB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[264:265) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Cosmos DB to Log Analytics workspace' +//@[8:90) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:90) StringSyntax +//@[21:90) StringComplete |'Deploy Diagnostic Settings for Cosmos DB to Log Analytics workspace'| +//@[90:91) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:5709) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:5709) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:113) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:113) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.DocumentDB/databaseAccounts' +//@[12:59) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.DocumentDB/databaseAccounts'| +//@[59:60) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:5563) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:5563) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:5486) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:5486) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:4504) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:4504) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:4460) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:4460) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:3628) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:3628) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:2696) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:2696) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:2641) ArrayItemSyntax +//@[22:2641) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.DocumentDB/databaseAccounts/providers/diagnosticSettings' +//@[24:98) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:98) StringSyntax +//@[30:98) StringComplete |'Microsoft.DocumentDB/databaseAccounts/providers/diagnosticSettings'| +//@[98:99) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:2204) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:2204) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:463) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:463) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:398) ArrayItemSyntax +//@[28:398) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Requests' +//@[30:50) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:50) StringSyntax +//@[40:50) StringComplete |'Requests'| +//@[50:51) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:1604) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:1604) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:190) ArrayItemSyntax +//@[28:190) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DataPlaneRequests' +//@[30:59) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:59) StringSyntax +//@[40:59) StringComplete |'DataPlaneRequests'| +//@[59:60) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:186) ArrayItemSyntax +//@[28:186) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'MongoRequests' +//@[30:55) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:55) StringSyntax +//@[40:55) StringComplete |'MongoRequests'| +//@[55:56) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:195) ArrayItemSyntax +//@[28:195) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'QueryRuntimeStatistics' +//@[30:64) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:64) StringSyntax +//@[40:64) StringComplete |'QueryRuntimeStatistics'| +//@[64:65) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:195) ArrayItemSyntax +//@[28:195) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'PartitionKeyStatistics' +//@[30:64) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:64) StringSyntax +//@[40:64) StringComplete |'PartitionKeyStatistics'| +//@[64:65) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:198) ArrayItemSyntax +//@[28:198) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'PartitionKeyRUConsumption' +//@[30:67) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:67) StringSyntax +//@[40:67) StringComplete |'PartitionKeyRUConsumption'| +//@[67:68) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:193) ArrayItemSyntax +//@[28:193) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ControlPlaneRequests' +//@[30:62) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:62) StringSyntax +//@[40:62) StringComplete |'ControlPlaneRequests'| +//@[62:63) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:190) ArrayItemSyntax +//@[28:190) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'CassandraRequests' +//@[30:59) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:59) StringSyntax +//@[40:59) StringComplete |'CassandraRequests'| +//@[59:60) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:188) ArrayItemSyntax +//@[28:188) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'GremlinRequests' +//@[30:57) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:57) StringSyntax +//@[40:57) StringComplete |'GremlinRequests'| +//@[57:58) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-CosmosDB' +//@[6:41) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:41) StringSyntax +//@[12:41) StringComplete |'Deploy-Diagnostics-CosmosDB'| +//@[41:42) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:1231) ArrayItemSyntax +//@[4:1231) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:1176) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:1176) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies that Cosmos database accounts are created with out public network access is disabled.' +//@[8:129) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:129) StringSyntax +//@[21:129) StringComplete |'This policy denies that Cosmos database accounts are created with out public network access is disabled.'| +//@[129:130) NewLine |\n| + DisplayName: 'Public network access should be disabled for CosmosDB' +//@[8:76) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:76) StringSyntax +//@[21:76) StringComplete |'Public network access should be disabled for CosmosDB'| +//@[76:77) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:383) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:383) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:351) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:351) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:110) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:110) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:82) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:82) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'SQL' +//@[10:25) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:25) StringSyntax +//@[20:25) StringComplete |'SQL'| +//@[25:26) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:450) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:450) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:341) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:341) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:313) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:313) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:125) ArrayItemSyntax +//@[14:125) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.DocumentDB/databaseAccounts' +//@[16:63) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:63) StringSyntax +//@[24:63) StringComplete |'Microsoft.DocumentDB/databaseAccounts'| +//@[63:64) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:152) ArrayItemSyntax +//@[14:152) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.DocumentDB/databaseAccounts/publicNetworkAccess' +//@[16:82) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:82) StringSyntax +//@[23:82) StringComplete |'Microsoft.DocumentDB/databaseAccounts/publicNetworkAccess'| +//@[82:83) NewLine |\n| + notequals: 'Disabled' +//@[16:37) ObjectPropertySyntax +//@[16:25) IdentifierSyntax +//@[16:25) Identifier |notequals| +//@[25:26) Colon |:| +//@[27:37) StringSyntax +//@[27:37) StringComplete |'Disabled'| +//@[37:38) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:76) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:76) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-PublicEndpoint-CosmosDB' +//@[6:42) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:42) StringSyntax +//@[12:42) StringComplete |'Deny-PublicEndpoint-CosmosDB'| +//@[42:43) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:7144) ArrayItemSyntax +//@[4:7144) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:7088) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:7088) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Databricks to stream to a Log Analytics workspace when any Databricks which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:266) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:266) StringSyntax +//@[21:266) StringComplete |'Deploys the diagnostic settings for Databricks to stream to a Log Analytics workspace when any Databricks which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[266:267) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Databricks to Log Analytics workspace' +//@[8:91) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:91) StringSyntax +//@[21:91) StringComplete |'Deploy Diagnostic Settings for Databricks to Log Analytics workspace'| +//@[91:92) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1463) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1463) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:5123) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:5123) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:107) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:107) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Databricks/workspaces' +//@[12:53) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:53) StringSyntax +//@[20:53) StringComplete |'Microsoft.Databricks/workspaces'| +//@[53:54) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4983) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4983) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4906) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4906) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:429) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:429) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:377) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:377) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:4082) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:4082) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:4038) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:4038) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:3330) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:3330) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:554) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:554) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:2501) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:2501) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:2446) ArrayItemSyntax +//@[22:2446) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Databricks/workspaces/providers/diagnosticSettings' +//@[24:92) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:92) StringSyntax +//@[30:92) StringComplete |'Microsoft.Databricks/workspaces/providers/diagnosticSettings'| +//@[92:93) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:2015) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:2015) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + logs: [ +//@[26:1879) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:1879) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:177) ArrayItemSyntax +//@[28:177) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'dbfs' +//@[30:46) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:46) StringSyntax +//@[40:46) StringComplete |'dbfs'| +//@[46:47) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:181) ArrayItemSyntax +//@[28:181) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'clusters' +//@[30:50) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:50) StringSyntax +//@[40:50) StringComplete |'clusters'| +//@[50:51) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:181) ArrayItemSyntax +//@[28:181) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'accounts' +//@[30:50) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:50) StringSyntax +//@[40:50) StringComplete |'accounts'| +//@[50:51) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:177) ArrayItemSyntax +//@[28:177) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'jobs' +//@[30:46) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:46) StringSyntax +//@[40:46) StringComplete |'jobs'| +//@[46:47) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:181) ArrayItemSyntax +//@[28:181) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'notebook' +//@[30:50) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:50) StringSyntax +//@[40:50) StringComplete |'notebook'| +//@[50:51) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:176) ArrayItemSyntax +//@[28:176) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ssh' +//@[30:45) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:45) StringSyntax +//@[40:45) StringComplete |'ssh'| +//@[45:46) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:182) ArrayItemSyntax +//@[28:182) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'workspace' +//@[30:51) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:51) StringSyntax +//@[40:51) StringComplete |'workspace'| +//@[51:52) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:180) ArrayItemSyntax +//@[28:180) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'secrets' +//@[30:49) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:49) StringSyntax +//@[40:49) StringComplete |'secrets'| +//@[49:50) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:187) ArrayItemSyntax +//@[28:187) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'sqlPermissions' +//@[30:56) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:56) StringSyntax +//@[40:56) StringComplete |'sqlPermissions'| +//@[56:57) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:186) ArrayItemSyntax +//@[28:186) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'instancePools' +//@[30:55) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:55) StringSyntax +//@[40:55) StringComplete |'instancePools'| +//@[55:56) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:621) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:621) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-Databricks' +//@[6:43) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:43) StringSyntax +//@[12:43) StringComplete |'Deploy-Diagnostics-Databricks'| +//@[43:44) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:8342) ArrayItemSyntax +//@[4:8342) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:8285) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:8285) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Data Factory to stream to a Log Analytics workspace when any Data Factory which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:270) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:270) StringSyntax +//@[21:270) StringComplete |'Deploys the diagnostic settings for Data Factory to stream to a Log Analytics workspace when any Data Factory which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[270:271) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Data Factory to Log Analytics workspace' +//@[8:93) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:93) StringSyntax +//@[21:93) StringComplete |'Deploy Diagnostic Settings for Data Factory to Log Analytics workspace'| +//@[93:94) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:5937) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:5937) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:107) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:107) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.DataFactory/factories' +//@[12:53) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:53) StringSyntax +//@[20:53) StringComplete |'Microsoft.DataFactory/factories'| +//@[53:54) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:5797) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:5797) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:5720) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:5720) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:4738) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:4738) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:4694) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:4694) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:3862) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:3862) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:2930) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:2930) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:2875) ArrayItemSyntax +//@[22:2875) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.DataFactory/factories/providers/diagnosticSettings' +//@[24:92) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:92) StringSyntax +//@[30:92) StringComplete |'Microsoft.DataFactory/factories/providers/diagnosticSettings'| +//@[92:93) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:2444) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:2444) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:1842) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:1842) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:185) ArrayItemSyntax +//@[28:185) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ActivityRuns' +//@[30:54) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:54) StringSyntax +//@[40:54) StringComplete |'ActivityRuns'| +//@[54:55) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:185) ArrayItemSyntax +//@[28:185) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'PipelineRuns' +//@[30:54) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:54) StringSyntax +//@[40:54) StringComplete |'PipelineRuns'| +//@[54:55) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:184) ArrayItemSyntax +//@[28:184) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'TriggerRuns' +//@[30:53) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:53) StringSyntax +//@[40:53) StringComplete |'TriggerRuns'| +//@[53:54) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:197) ArrayItemSyntax +//@[28:197) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'SSISPackageEventMessages' +//@[30:66) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:66) StringSyntax +//@[40:66) StringComplete |'SSISPackageEventMessages'| +//@[66:67) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:204) ArrayItemSyntax +//@[28:204) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'SSISPackageExecutableStatistics' +//@[30:73) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:73) StringSyntax +//@[40:73) StringComplete |'SSISPackageExecutableStatistics'| +//@[73:74) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:203) ArrayItemSyntax +//@[28:203) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'SSISPackageEventMessageContext' +//@[30:72) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:72) StringSyntax +//@[40:72) StringComplete |'SSISPackageEventMessageContext'| +//@[72:73) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:208) ArrayItemSyntax +//@[28:208) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'SSISPackageExecutionComponentPhases' +//@[30:77) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:77) StringSyntax +//@[40:77) StringComplete |'SSISPackageExecutionComponentPhases'| +//@[77:78) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:207) ArrayItemSyntax +//@[28:207) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'SSISPackageExecutionDataStatistics' +//@[30:76) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:76) StringSyntax +//@[40:76) StringComplete |'SSISPackageExecutionDataStatistics'| +//@[76:77) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:199) ArrayItemSyntax +//@[28:199) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'SSISIntegrationRuntimeLogs' +//@[30:68) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:68) StringSyntax +//@[40:68) StringComplete |'SSISIntegrationRuntimeLogs'| +//@[68:69) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-DataFactory' +//@[6:44) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:44) StringSyntax +//@[12:44) StringComplete |'Deploy-Diagnostics-DataFactory'| +//@[44:45) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:6953) ArrayItemSyntax +//@[4:6953) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:6896) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:6896) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Data Lake Analytics to stream to a Log Analytics workspace when any Data Lake Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:284) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:284) StringSyntax +//@[21:284) StringComplete |'Deploys the diagnostic settings for Data Lake Analytics to stream to a Log Analytics workspace when any Data Lake Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[284:285) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Data Lake Analytics to Log Analytics workspace' +//@[8:100) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:100) StringSyntax +//@[21:100) StringComplete |'Deploy Diagnostic Settings for Data Lake Analytics to Log Analytics workspace'| +//@[100:101) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4527) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4527) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:112) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:112) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.DataLakeAnalytics/accounts' +//@[12:58) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:58) StringSyntax +//@[20:58) StringComplete |'Microsoft.DataLakeAnalytics/accounts'| +//@[58:59) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4382) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4382) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4305) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4305) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3323) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3323) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3279) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3279) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2447) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2447) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1515) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1515) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1460) ArrayItemSyntax +//@[22:1460) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.DataLakeAnalytics/accounts/providers/diagnosticSettings' +//@[24:97) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:97) StringSyntax +//@[30:97) StringComplete |'Microsoft.DataLakeAnalytics/accounts/providers/diagnosticSettings'| +//@[97:98) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:1024) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1024) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:422) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:422) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:178) ArrayItemSyntax +//@[28:178) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Audit' +//@[30:47) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:47) StringSyntax +//@[40:47) StringComplete |'Audit'| +//@[47:48) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:181) ArrayItemSyntax +//@[28:181) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Requests' +//@[30:50) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:50) StringSyntax +//@[40:50) StringComplete |'Requests'| +//@[50:51) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-DLAnalytics' +//@[6:44) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:44) StringSyntax +//@[12:44) StringComplete |'Deploy-Diagnostics-DLAnalytics'| +//@[44:45) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:6952) ArrayItemSyntax +//@[4:6952) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:6893) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:6893) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Azure Data Lake Store to stream to a Log Analytics workspace when anyAzure Data Lake Store which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:287) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:287) StringSyntax +//@[21:287) StringComplete |'Deploys the diagnostic settings for Azure Data Lake Store to stream to a Log Analytics workspace when anyAzure Data Lake Store which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[287:288) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Azure Data Lake Store to Log Analytics workspace' +//@[8:102) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:102) StringSyntax +//@[21:102) StringComplete |'Deploy Diagnostic Settings for Azure Data Lake Store to Log Analytics workspace'| +//@[102:103) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4519) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4519) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:108) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:108) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.DataLakeStore/accounts' +//@[12:54) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:54) StringSyntax +//@[20:54) StringComplete |'Microsoft.DataLakeStore/accounts'| +//@[54:55) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4378) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4378) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4301) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4301) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3319) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3319) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3275) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3275) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2443) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2443) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1511) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1511) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1456) ArrayItemSyntax +//@[22:1456) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.DataLakeStore/accounts/providers/diagnosticSettings' +//@[24:93) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:93) StringSyntax +//@[30:93) StringComplete |'Microsoft.DataLakeStore/accounts/providers/diagnosticSettings'| +//@[93:94) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:1024) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1024) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:422) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:422) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:178) ArrayItemSyntax +//@[28:178) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Audit' +//@[30:47) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:47) StringSyntax +//@[40:47) StringComplete |'Audit'| +//@[47:48) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:181) ArrayItemSyntax +//@[28:181) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Requests' +//@[30:50) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:50) StringSyntax +//@[40:50) StringComplete |'Requests'| +//@[50:51) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-DataLakeStore' +//@[6:46) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:46) StringSyntax +//@[12:46) StringComplete |'Deploy-Diagnostics-DataLakeStore'| +//@[46:47) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:3997) ArrayItemSyntax +//@[4:3997) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:3926) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:3926) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Blob Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' +//@[8:189) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:189) StringSyntax +//@[21:189) StringComplete |'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Blob Private Endpoint. Used enforce the configuration to a single Private DNS Zone. '| +//@[189:190) NewLine |\n| + DisplayName: 'Deploy DNS Zone Group for Storage-Blob Private Endpoint' +//@[8:78) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:78) StringSyntax +//@[21:78) StringComplete |'Deploy DNS Zone Group for Storage-Blob Private Endpoint'| +//@[78:79) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:602) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:602) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + privateDnsZoneId: { +//@[10:214) ObjectPropertySyntax +//@[10:26) IdentifierSyntax +//@[10:26) Identifier |privateDnsZoneId| +//@[26:27) Colon |:| +//@[28:214) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'privateDnsZoneId' +//@[14:45) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:45) StringSyntax +//@[27:45) StringComplete |'privateDnsZoneId'| +//@[45:46) NewLine |\n| + strongType: 'Microsoft.Network/privateDnsZones' +//@[14:61) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:61) StringSyntax +//@[26:61) StringComplete |'Microsoft.Network/privateDnsZones'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:86) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:86) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:29) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringSyntax +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:2915) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:2915) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:593) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:593) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:565) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:565) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:122) ArrayItemSyntax +//@[14:122) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Network/privateEndpoints' +//@[16:60) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:60) StringSyntax +//@[24:60) StringComplete |'Microsoft.Network/privateEndpoints'| +//@[60:61) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:407) ArrayItemSyntax +//@[14:407) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + count: { +//@[16:340) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |count| +//@[21:22) Colon |:| +//@[23:340) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' +//@[18:106) ObjectPropertySyntax +//@[18:23) IdentifierSyntax +//@[18:23) Identifier |field| +//@[23:24) Colon |:| +//@[25:106) StringSyntax +//@[25:106) StringComplete |'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]'| +//@[106:107) NewLine |\n| + where: { +//@[18:190) ObjectPropertySyntax +//@[18:23) IdentifierSyntax +//@[18:23) Identifier |where| +//@[23:24) Colon |:| +//@[25:190) ObjectSyntax +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' +//@[20:108) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]'| +//@[108:109) NewLine |\n| + equals: 'blob' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'blob'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + greaterOrEquals: 1 +//@[16:34) ObjectPropertySyntax +//@[16:31) IdentifierSyntax +//@[16:31) Identifier |greaterOrEquals| +//@[31:32) Colon |:| +//@[33:34) IntegerLiteralSyntax +//@[33:34) Integer |1| +//@[34:35) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:2289) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:2289) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:2212) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:2212) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' +//@[14:77) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:77) StringSyntax +//@[20:77) StringComplete |'Microsoft.Network/privateEndpoints/privateDnsZoneGroups'| +//@[77:78) NewLine |\n| + roleDefinitionIds: [ +//@[14:156) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:156) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:1940) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:1940) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:1896) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:1896) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:1409) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:1409) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[20:112) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:112) StringSyntax +//@[31:112) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[112:113) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:365) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:365) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + privateDnsZoneId: { +//@[22:104) ObjectPropertySyntax +//@[22:38) IdentifierSyntax +//@[22:38) Identifier |privateDnsZoneId| +//@[38:39) Colon |:| +//@[40:104) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + privateEndpointName: { +//@[22:107) ObjectPropertySyntax +//@[22:41) IdentifierSyntax +//@[22:41) Identifier |privateEndpointName| +//@[41:42) Colon |:| +//@[43:107) ObjectSyntax +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:834) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:834) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:779) ArrayItemSyntax +//@[22:779) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' +//@[24:100) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:100) StringSyntax +//@[30:100) StringComplete |'[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]'| +//@[100:101) NewLine |\n| + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' +//@[24:87) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:87) StringSyntax +//@[30:87) StringComplete |'Microsoft.Network/privateEndpoints/privateDnsZoneGroups'| +//@[87:88) NewLine |\n| + apiVersion: '2020-03-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2020-03-01'| +//@[48:49) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + properties: { +//@[24:430) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:430) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + privateDnsZoneConfigs: [ +//@[26:366) ObjectPropertySyntax +//@[26:47) IdentifierSyntax +//@[26:47) Identifier |privateDnsZoneConfigs| +//@[47:48) Colon |:| +//@[49:366) ArraySyntax +//@[49:50) LeftSquare |[| +//@[50:51) NewLine |\n| + { +//@[28:287) ArrayItemSyntax +//@[28:287) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + name: 'storageBlob-privateDnsZone' +//@[30:64) ObjectPropertySyntax +//@[30:34) IdentifierSyntax +//@[30:34) Identifier |name| +//@[34:35) Colon |:| +//@[36:64) StringSyntax +//@[36:64) StringComplete |'storageBlob-privateDnsZone'| +//@[64:65) NewLine |\n| + properties: { +//@[30:162) ObjectPropertySyntax +//@[30:40) IdentifierSyntax +//@[30:40) Identifier |properties| +//@[40:41) Colon |:| +//@[42:162) ObjectSyntax +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' +//@[32:86) ObjectPropertySyntax +//@[32:48) IdentifierSyntax +//@[32:48) Identifier |privateDnsZoneId| +//@[48:49) Colon |:| +//@[50:86) StringSyntax +//@[50:86) StringComplete |'[parameters(\'privateDnsZoneId\')]'| +//@[86:87) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:400) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:400) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + privateDnsZoneId: { +//@[20:127) ObjectPropertySyntax +//@[20:36) IdentifierSyntax +//@[20:36) Identifier |privateDnsZoneId| +//@[36:37) Colon |:| +//@[38:127) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + value: '[parameters(\'privateDnsZoneId\')]' +//@[22:65) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:65) StringSyntax +//@[29:65) StringComplete |'[parameters(\'privateDnsZoneId\')]'| +//@[65:66) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + privateEndpointName: { +//@[20:113) ObjectPropertySyntax +//@[20:39) IdentifierSyntax +//@[20:39) Identifier |privateEndpointName| +//@[39:40) Colon |:| +//@[41:113) ObjectSyntax +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-DNSZoneGroup-For-Blob-PrivateEndpoint' +//@[6:58) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:58) StringSyntax +//@[12:58) StringComplete |'Deploy-DNSZoneGroup-For-Blob-PrivateEndpoint'| +//@[58:59) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:3998) ArrayItemSyntax +//@[4:3998) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:3927) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:3927) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-File Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' +//@[8:189) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:189) StringSyntax +//@[21:189) StringComplete |'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-File Private Endpoint. Used enforce the configuration to a single Private DNS Zone. '| +//@[189:190) NewLine |\n| + DisplayName: 'Deploy DNS Zone Group for Storage-File Private Endpoint' +//@[8:79) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:79) StringSyntax +//@[21:79) StringComplete |'Deploy DNS Zone Group for Storage-File Private Endpoint'| +//@[79:80) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:602) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:602) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + privateDnsZoneId: { +//@[10:214) ObjectPropertySyntax +//@[10:26) IdentifierSyntax +//@[10:26) Identifier |privateDnsZoneId| +//@[26:27) Colon |:| +//@[28:214) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'privateDnsZoneId' +//@[14:45) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:45) StringSyntax +//@[27:45) StringComplete |'privateDnsZoneId'| +//@[45:46) NewLine |\n| + strongType: 'Microsoft.Network/privateDnsZones' +//@[14:61) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:61) StringSyntax +//@[26:61) StringComplete |'Microsoft.Network/privateDnsZones'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:86) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:86) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:29) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringSyntax +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:2915) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:2915) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:593) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:593) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:565) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:565) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:122) ArrayItemSyntax +//@[14:122) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Network/privateEndpoints' +//@[16:60) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:60) StringSyntax +//@[24:60) StringComplete |'Microsoft.Network/privateEndpoints'| +//@[60:61) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:407) ArrayItemSyntax +//@[14:407) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + count: { +//@[16:340) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |count| +//@[21:22) Colon |:| +//@[23:340) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' +//@[18:106) ObjectPropertySyntax +//@[18:23) IdentifierSyntax +//@[18:23) Identifier |field| +//@[23:24) Colon |:| +//@[25:106) StringSyntax +//@[25:106) StringComplete |'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]'| +//@[106:107) NewLine |\n| + where: { +//@[18:190) ObjectPropertySyntax +//@[18:23) IdentifierSyntax +//@[18:23) Identifier |where| +//@[23:24) Colon |:| +//@[25:190) ObjectSyntax +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' +//@[20:108) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]'| +//@[108:109) NewLine |\n| + equals: 'file' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'file'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + greaterOrEquals: 1 +//@[16:34) ObjectPropertySyntax +//@[16:31) IdentifierSyntax +//@[16:31) Identifier |greaterOrEquals| +//@[31:32) Colon |:| +//@[33:34) IntegerLiteralSyntax +//@[33:34) Integer |1| +//@[34:35) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:2289) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:2289) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:2212) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:2212) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' +//@[14:77) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:77) StringSyntax +//@[20:77) StringComplete |'Microsoft.Network/privateEndpoints/privateDnsZoneGroups'| +//@[77:78) NewLine |\n| + roleDefinitionIds: [ +//@[14:156) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:156) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:1940) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:1940) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:1896) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:1896) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:1409) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:1409) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[20:112) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:112) StringSyntax +//@[31:112) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[112:113) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:365) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:365) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + privateDnsZoneId: { +//@[22:104) ObjectPropertySyntax +//@[22:38) IdentifierSyntax +//@[22:38) Identifier |privateDnsZoneId| +//@[38:39) Colon |:| +//@[40:104) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + privateEndpointName: { +//@[22:107) ObjectPropertySyntax +//@[22:41) IdentifierSyntax +//@[22:41) Identifier |privateEndpointName| +//@[41:42) Colon |:| +//@[43:107) ObjectSyntax +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:834) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:834) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:779) ArrayItemSyntax +//@[22:779) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' +//@[24:100) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:100) StringSyntax +//@[30:100) StringComplete |'[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]'| +//@[100:101) NewLine |\n| + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' +//@[24:87) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:87) StringSyntax +//@[30:87) StringComplete |'Microsoft.Network/privateEndpoints/privateDnsZoneGroups'| +//@[87:88) NewLine |\n| + apiVersion: '2020-03-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2020-03-01'| +//@[48:49) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + properties: { +//@[24:430) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:430) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + privateDnsZoneConfigs: [ +//@[26:366) ObjectPropertySyntax +//@[26:47) IdentifierSyntax +//@[26:47) Identifier |privateDnsZoneConfigs| +//@[47:48) Colon |:| +//@[49:366) ArraySyntax +//@[49:50) LeftSquare |[| +//@[50:51) NewLine |\n| + { +//@[28:287) ArrayItemSyntax +//@[28:287) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + name: 'storageFile-privateDnsZone' +//@[30:64) ObjectPropertySyntax +//@[30:34) IdentifierSyntax +//@[30:34) Identifier |name| +//@[34:35) Colon |:| +//@[36:64) StringSyntax +//@[36:64) StringComplete |'storageFile-privateDnsZone'| +//@[64:65) NewLine |\n| + properties: { +//@[30:162) ObjectPropertySyntax +//@[30:40) IdentifierSyntax +//@[30:40) Identifier |properties| +//@[40:41) Colon |:| +//@[42:162) ObjectSyntax +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' +//@[32:86) ObjectPropertySyntax +//@[32:48) IdentifierSyntax +//@[32:48) Identifier |privateDnsZoneId| +//@[48:49) Colon |:| +//@[50:86) StringSyntax +//@[50:86) StringComplete |'[parameters(\'privateDnsZoneId\')]'| +//@[86:87) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:400) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:400) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + privateDnsZoneId: { +//@[20:127) ObjectPropertySyntax +//@[20:36) IdentifierSyntax +//@[20:36) Identifier |privateDnsZoneId| +//@[36:37) Colon |:| +//@[38:127) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + value: '[parameters(\'privateDnsZoneId\')]' +//@[22:65) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:65) StringSyntax +//@[29:65) StringComplete |'[parameters(\'privateDnsZoneId\')]'| +//@[65:66) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + privateEndpointName: { +//@[20:113) ObjectPropertySyntax +//@[20:39) IdentifierSyntax +//@[20:39) Identifier |privateEndpointName| +//@[39:40) Colon |:| +//@[41:113) ObjectSyntax +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-DNSZoneGroup-For-File-PrivateEndpoint' +//@[6:58) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:58) StringSyntax +//@[12:58) StringComplete |'Deploy-DNSZoneGroup-For-File-PrivateEndpoint'| +//@[58:59) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:3994) ArrayItemSyntax +//@[4:3994) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:3919) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:3919) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Key Vault Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' +//@[8:186) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:186) StringSyntax +//@[21:186) StringComplete |'Deploys the configurations of a Private DNS Zone Group by a parameter for Key Vault Private Endpoint. Used enforce the configuration to a single Private DNS Zone. '| +//@[186:187) NewLine |\n| + DisplayName: 'Deploy DNS Zone Group for Key Vault Private Endpoint' +//@[8:76) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:76) StringSyntax +//@[21:76) StringComplete |'Deploy DNS Zone Group for Key Vault Private Endpoint'| +//@[76:77) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:602) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:602) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + privateDnsZoneId: { +//@[10:214) ObjectPropertySyntax +//@[10:26) IdentifierSyntax +//@[10:26) Identifier |privateDnsZoneId| +//@[26:27) Colon |:| +//@[28:214) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'privateDnsZoneId' +//@[14:45) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:45) StringSyntax +//@[27:45) StringComplete |'privateDnsZoneId'| +//@[45:46) NewLine |\n| + strongType: 'Microsoft.Network/privateDnsZones' +//@[14:61) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:61) StringSyntax +//@[26:61) StringComplete |'Microsoft.Network/privateDnsZones'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:86) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:86) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:29) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringSyntax +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:2913) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:2913) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:594) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:594) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:566) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:566) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:122) ArrayItemSyntax +//@[14:122) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Network/privateEndpoints' +//@[16:60) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:60) StringSyntax +//@[24:60) StringComplete |'Microsoft.Network/privateEndpoints'| +//@[60:61) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:408) ArrayItemSyntax +//@[14:408) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + count: { +//@[16:341) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |count| +//@[21:22) Colon |:| +//@[23:341) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' +//@[18:106) ObjectPropertySyntax +//@[18:23) IdentifierSyntax +//@[18:23) Identifier |field| +//@[23:24) Colon |:| +//@[25:106) StringSyntax +//@[25:106) StringComplete |'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]'| +//@[106:107) NewLine |\n| + where: { +//@[18:191) ObjectPropertySyntax +//@[18:23) IdentifierSyntax +//@[18:23) Identifier |where| +//@[23:24) Colon |:| +//@[25:191) ObjectSyntax +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' +//@[20:108) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]'| +//@[108:109) NewLine |\n| + equals: 'vault' +//@[20:35) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:35) StringSyntax +//@[28:35) StringComplete |'vault'| +//@[35:36) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + greaterOrEquals: 1 +//@[16:34) ObjectPropertySyntax +//@[16:31) IdentifierSyntax +//@[16:31) Identifier |greaterOrEquals| +//@[31:32) Colon |:| +//@[33:34) IntegerLiteralSyntax +//@[33:34) Integer |1| +//@[34:35) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:2286) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:2286) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:2209) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:2209) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' +//@[14:77) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:77) StringSyntax +//@[20:77) StringComplete |'Microsoft.Network/privateEndpoints/privateDnsZoneGroups'| +//@[77:78) NewLine |\n| + roleDefinitionIds: [ +//@[14:156) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:156) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:1937) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:1937) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:1893) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:1893) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:1406) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:1406) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[20:112) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:112) StringSyntax +//@[31:112) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[112:113) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:365) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:365) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + privateDnsZoneId: { +//@[22:104) ObjectPropertySyntax +//@[22:38) IdentifierSyntax +//@[22:38) Identifier |privateDnsZoneId| +//@[38:39) Colon |:| +//@[40:104) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + privateEndpointName: { +//@[22:107) ObjectPropertySyntax +//@[22:41) IdentifierSyntax +//@[22:41) Identifier |privateEndpointName| +//@[41:42) Colon |:| +//@[43:107) ObjectSyntax +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:831) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:831) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:776) ArrayItemSyntax +//@[22:776) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' +//@[24:100) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:100) StringSyntax +//@[30:100) StringComplete |'[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]'| +//@[100:101) NewLine |\n| + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' +//@[24:87) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:87) StringSyntax +//@[30:87) StringComplete |'Microsoft.Network/privateEndpoints/privateDnsZoneGroups'| +//@[87:88) NewLine |\n| + apiVersion: '2020-03-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2020-03-01'| +//@[48:49) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + properties: { +//@[24:427) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:427) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + privateDnsZoneConfigs: [ +//@[26:363) ObjectPropertySyntax +//@[26:47) IdentifierSyntax +//@[26:47) Identifier |privateDnsZoneConfigs| +//@[47:48) Colon |:| +//@[49:363) ArraySyntax +//@[49:50) LeftSquare |[| +//@[50:51) NewLine |\n| + { +//@[28:284) ArrayItemSyntax +//@[28:284) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + name: 'keyVault-privateDnsZone' +//@[30:61) ObjectPropertySyntax +//@[30:34) IdentifierSyntax +//@[30:34) Identifier |name| +//@[34:35) Colon |:| +//@[36:61) StringSyntax +//@[36:61) StringComplete |'keyVault-privateDnsZone'| +//@[61:62) NewLine |\n| + properties: { +//@[30:162) ObjectPropertySyntax +//@[30:40) IdentifierSyntax +//@[30:40) Identifier |properties| +//@[40:41) Colon |:| +//@[42:162) ObjectSyntax +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' +//@[32:86) ObjectPropertySyntax +//@[32:48) IdentifierSyntax +//@[32:48) Identifier |privateDnsZoneId| +//@[48:49) Colon |:| +//@[50:86) StringSyntax +//@[50:86) StringComplete |'[parameters(\'privateDnsZoneId\')]'| +//@[86:87) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:400) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:400) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + privateDnsZoneId: { +//@[20:127) ObjectPropertySyntax +//@[20:36) IdentifierSyntax +//@[20:36) Identifier |privateDnsZoneId| +//@[36:37) Colon |:| +//@[38:127) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + value: '[parameters(\'privateDnsZoneId\')]' +//@[22:65) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:65) StringSyntax +//@[29:65) StringComplete |'[parameters(\'privateDnsZoneId\')]'| +//@[65:66) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + privateEndpointName: { +//@[20:113) ObjectPropertySyntax +//@[20:39) IdentifierSyntax +//@[20:39) Identifier |privateEndpointName| +//@[39:40) Colon |:| +//@[41:113) ObjectSyntax +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-DNSZoneGroup-For-KeyVault-PrivateEndpoint' +//@[6:62) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:62) StringSyntax +//@[12:62) StringComplete |'Deploy-DNSZoneGroup-For-KeyVault-PrivateEndpoint'| +//@[62:63) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:4003) ArrayItemSyntax +//@[4:4003) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:3931) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:3931) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Queue Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' +//@[8:190) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:190) StringSyntax +//@[21:190) StringComplete |'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Queue Private Endpoint. Used enforce the configuration to a single Private DNS Zone. '| +//@[190:191) NewLine |\n| + DisplayName: 'Deploy DNS Zone Group for Storage-Queue Private Endpoint' +//@[8:80) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:80) StringSyntax +//@[21:80) StringComplete |'Deploy DNS Zone Group for Storage-Queue Private Endpoint'| +//@[80:81) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:602) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:602) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + privateDnsZoneId: { +//@[10:214) ObjectPropertySyntax +//@[10:26) IdentifierSyntax +//@[10:26) Identifier |privateDnsZoneId| +//@[26:27) Colon |:| +//@[28:214) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'privateDnsZoneId' +//@[14:45) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:45) StringSyntax +//@[27:45) StringComplete |'privateDnsZoneId'| +//@[45:46) NewLine |\n| + strongType: 'Microsoft.Network/privateDnsZones' +//@[14:61) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:61) StringSyntax +//@[26:61) StringComplete |'Microsoft.Network/privateDnsZones'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:86) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:86) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:29) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringSyntax +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:2917) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:2917) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:594) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:594) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:566) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:566) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:122) ArrayItemSyntax +//@[14:122) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Network/privateEndpoints' +//@[16:60) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:60) StringSyntax +//@[24:60) StringComplete |'Microsoft.Network/privateEndpoints'| +//@[60:61) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:408) ArrayItemSyntax +//@[14:408) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + count: { +//@[16:341) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |count| +//@[21:22) Colon |:| +//@[23:341) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' +//@[18:106) ObjectPropertySyntax +//@[18:23) IdentifierSyntax +//@[18:23) Identifier |field| +//@[23:24) Colon |:| +//@[25:106) StringSyntax +//@[25:106) StringComplete |'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]'| +//@[106:107) NewLine |\n| + where: { +//@[18:191) ObjectPropertySyntax +//@[18:23) IdentifierSyntax +//@[18:23) Identifier |where| +//@[23:24) Colon |:| +//@[25:191) ObjectSyntax +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' +//@[20:108) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]'| +//@[108:109) NewLine |\n| + equals: 'queue' +//@[20:35) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:35) StringSyntax +//@[28:35) StringComplete |'queue'| +//@[35:36) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + greaterOrEquals: 1 +//@[16:34) ObjectPropertySyntax +//@[16:31) IdentifierSyntax +//@[16:31) Identifier |greaterOrEquals| +//@[31:32) Colon |:| +//@[33:34) IntegerLiteralSyntax +//@[33:34) Integer |1| +//@[34:35) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:2290) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:2290) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:2213) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:2213) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' +//@[14:77) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:77) StringSyntax +//@[20:77) StringComplete |'Microsoft.Network/privateEndpoints/privateDnsZoneGroups'| +//@[77:78) NewLine |\n| + roleDefinitionIds: [ +//@[14:156) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:156) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:1941) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:1941) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:1897) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:1897) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:1410) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:1410) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[20:112) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:112) StringSyntax +//@[31:112) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[112:113) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:365) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:365) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + privateDnsZoneId: { +//@[22:104) ObjectPropertySyntax +//@[22:38) IdentifierSyntax +//@[22:38) Identifier |privateDnsZoneId| +//@[38:39) Colon |:| +//@[40:104) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + privateEndpointName: { +//@[22:107) ObjectPropertySyntax +//@[22:41) IdentifierSyntax +//@[22:41) Identifier |privateEndpointName| +//@[41:42) Colon |:| +//@[43:107) ObjectSyntax +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:835) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:835) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:780) ArrayItemSyntax +//@[22:780) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' +//@[24:100) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:100) StringSyntax +//@[30:100) StringComplete |'[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]'| +//@[100:101) NewLine |\n| + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' +//@[24:87) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:87) StringSyntax +//@[30:87) StringComplete |'Microsoft.Network/privateEndpoints/privateDnsZoneGroups'| +//@[87:88) NewLine |\n| + apiVersion: '2020-03-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2020-03-01'| +//@[48:49) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + properties: { +//@[24:431) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:431) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + privateDnsZoneConfigs: [ +//@[26:367) ObjectPropertySyntax +//@[26:47) IdentifierSyntax +//@[26:47) Identifier |privateDnsZoneConfigs| +//@[47:48) Colon |:| +//@[49:367) ArraySyntax +//@[49:50) LeftSquare |[| +//@[50:51) NewLine |\n| + { +//@[28:288) ArrayItemSyntax +//@[28:288) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + name: 'storageQueue-privateDnsZone' +//@[30:65) ObjectPropertySyntax +//@[30:34) IdentifierSyntax +//@[30:34) Identifier |name| +//@[34:35) Colon |:| +//@[36:65) StringSyntax +//@[36:65) StringComplete |'storageQueue-privateDnsZone'| +//@[65:66) NewLine |\n| + properties: { +//@[30:162) ObjectPropertySyntax +//@[30:40) IdentifierSyntax +//@[30:40) Identifier |properties| +//@[40:41) Colon |:| +//@[42:162) ObjectSyntax +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' +//@[32:86) ObjectPropertySyntax +//@[32:48) IdentifierSyntax +//@[32:48) Identifier |privateDnsZoneId| +//@[48:49) Colon |:| +//@[50:86) StringSyntax +//@[50:86) StringComplete |'[parameters(\'privateDnsZoneId\')]'| +//@[86:87) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:400) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:400) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + privateDnsZoneId: { +//@[20:127) ObjectPropertySyntax +//@[20:36) IdentifierSyntax +//@[20:36) Identifier |privateDnsZoneId| +//@[36:37) Colon |:| +//@[38:127) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + value: '[parameters(\'privateDnsZoneId\')]' +//@[22:65) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:65) StringSyntax +//@[29:65) StringComplete |'[parameters(\'privateDnsZoneId\')]'| +//@[65:66) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + privateEndpointName: { +//@[20:113) ObjectPropertySyntax +//@[20:39) IdentifierSyntax +//@[20:39) Identifier |privateEndpointName| +//@[39:40) Colon |:| +//@[41:113) ObjectSyntax +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-DNSZoneGroup-For-Queue-PrivateEndpoint' +//@[6:59) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:59) StringSyntax +//@[12:59) StringComplete |'Deploy-DNSZoneGroup-For-Queue-PrivateEndpoint'| +//@[59:60) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:3990) ArrayItemSyntax +//@[4:3990) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:3920) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:3920) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for SQL Private Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' +//@[8:188) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:188) StringSyntax +//@[21:188) StringComplete |'Deploys the configurations of a Private DNS Zone Group by a parameter for SQL Private Private Endpoint. Used enforce the configuration to a single Private DNS Zone. '| +//@[188:189) NewLine |\n| + DisplayName: 'Deploy DNS Zone Group for SQL Private Endpoint' +//@[8:70) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:70) StringSyntax +//@[21:70) StringComplete |'Deploy DNS Zone Group for SQL Private Endpoint'| +//@[70:71) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:602) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:602) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + privateDnsZoneId: { +//@[10:214) ObjectPropertySyntax +//@[10:26) IdentifierSyntax +//@[10:26) Identifier |privateDnsZoneId| +//@[26:27) Colon |:| +//@[28:214) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'privateDnsZoneId' +//@[14:45) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:45) StringSyntax +//@[27:45) StringComplete |'privateDnsZoneId'| +//@[45:46) NewLine |\n| + strongType: 'Microsoft.Network/privateDnsZones' +//@[14:61) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:61) StringSyntax +//@[26:61) StringComplete |'Microsoft.Network/privateDnsZones'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:86) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:86) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:29) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringSyntax +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:2918) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:2918) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:598) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:598) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:570) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:570) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:122) ArrayItemSyntax +//@[14:122) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Network/privateEndpoints' +//@[16:60) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:60) StringSyntax +//@[24:60) StringComplete |'Microsoft.Network/privateEndpoints'| +//@[60:61) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:412) ArrayItemSyntax +//@[14:412) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + count: { +//@[16:345) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |count| +//@[21:22) Colon |:| +//@[23:345) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' +//@[18:106) ObjectPropertySyntax +//@[18:23) IdentifierSyntax +//@[18:23) Identifier |field| +//@[23:24) Colon |:| +//@[25:106) StringSyntax +//@[25:106) StringComplete |'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]'| +//@[106:107) NewLine |\n| + where: { +//@[18:195) ObjectPropertySyntax +//@[18:23) IdentifierSyntax +//@[18:23) Identifier |where| +//@[23:24) Colon |:| +//@[25:195) ObjectSyntax +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' +//@[20:108) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]'| +//@[108:109) NewLine |\n| + equals: 'sqlServer' +//@[20:39) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:39) StringSyntax +//@[28:39) StringComplete |'sqlServer'| +//@[39:40) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + greaterOrEquals: 1 +//@[16:34) ObjectPropertySyntax +//@[16:31) IdentifierSyntax +//@[16:31) Identifier |greaterOrEquals| +//@[31:32) Colon |:| +//@[33:34) IntegerLiteralSyntax +//@[33:34) Integer |1| +//@[34:35) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:2287) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:2287) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:2210) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:2210) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' +//@[14:77) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:77) StringSyntax +//@[20:77) StringComplete |'Microsoft.Network/privateEndpoints/privateDnsZoneGroups'| +//@[77:78) NewLine |\n| + roleDefinitionIds: [ +//@[14:156) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:156) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:1938) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:1938) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:1894) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:1894) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:1407) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:1407) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[20:112) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:112) StringSyntax +//@[31:112) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[112:113) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:365) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:365) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + privateDnsZoneId: { +//@[22:104) ObjectPropertySyntax +//@[22:38) IdentifierSyntax +//@[22:38) Identifier |privateDnsZoneId| +//@[38:39) Colon |:| +//@[40:104) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + privateEndpointName: { +//@[22:107) ObjectPropertySyntax +//@[22:41) IdentifierSyntax +//@[22:41) Identifier |privateEndpointName| +//@[41:42) Colon |:| +//@[43:107) ObjectSyntax +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:832) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:832) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:777) ArrayItemSyntax +//@[22:777) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' +//@[24:100) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:100) StringSyntax +//@[30:100) StringComplete |'[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]'| +//@[100:101) NewLine |\n| + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' +//@[24:87) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:87) StringSyntax +//@[30:87) StringComplete |'Microsoft.Network/privateEndpoints/privateDnsZoneGroups'| +//@[87:88) NewLine |\n| + apiVersion: '2020-03-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2020-03-01'| +//@[48:49) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + properties: { +//@[24:428) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:428) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + privateDnsZoneConfigs: [ +//@[26:364) ObjectPropertySyntax +//@[26:47) IdentifierSyntax +//@[26:47) Identifier |privateDnsZoneConfigs| +//@[47:48) Colon |:| +//@[49:364) ArraySyntax +//@[49:50) LeftSquare |[| +//@[50:51) NewLine |\n| + { +//@[28:285) ArrayItemSyntax +//@[28:285) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + name: 'sqlServer-privateDnsZone' +//@[30:62) ObjectPropertySyntax +//@[30:34) IdentifierSyntax +//@[30:34) Identifier |name| +//@[34:35) Colon |:| +//@[36:62) StringSyntax +//@[36:62) StringComplete |'sqlServer-privateDnsZone'| +//@[62:63) NewLine |\n| + properties: { +//@[30:162) ObjectPropertySyntax +//@[30:40) IdentifierSyntax +//@[30:40) Identifier |properties| +//@[40:41) Colon |:| +//@[42:162) ObjectSyntax +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' +//@[32:86) ObjectPropertySyntax +//@[32:48) IdentifierSyntax +//@[32:48) Identifier |privateDnsZoneId| +//@[48:49) Colon |:| +//@[50:86) StringSyntax +//@[50:86) StringComplete |'[parameters(\'privateDnsZoneId\')]'| +//@[86:87) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:400) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:400) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + privateDnsZoneId: { +//@[20:127) ObjectPropertySyntax +//@[20:36) IdentifierSyntax +//@[20:36) Identifier |privateDnsZoneId| +//@[36:37) Colon |:| +//@[38:127) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + value: '[parameters(\'privateDnsZoneId\')]' +//@[22:65) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:65) StringSyntax +//@[29:65) StringComplete |'[parameters(\'privateDnsZoneId\')]'| +//@[65:66) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + privateEndpointName: { +//@[20:113) ObjectPropertySyntax +//@[20:39) IdentifierSyntax +//@[20:39) Identifier |privateEndpointName| +//@[39:40) Colon |:| +//@[41:113) ObjectSyntax +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-DNSZoneGroup-For-Sql-PrivateEndpoint' +//@[6:57) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:57) StringSyntax +//@[12:57) StringComplete |'Deploy-DNSZoneGroup-For-Sql-PrivateEndpoint'| +//@[57:58) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:4003) ArrayItemSyntax +//@[4:4003) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:3931) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:3931) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Table Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' +//@[8:190) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:190) StringSyntax +//@[21:190) StringComplete |'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Table Private Endpoint. Used enforce the configuration to a single Private DNS Zone. '| +//@[190:191) NewLine |\n| + DisplayName: 'Deploy DNS Zone Group for Storage-Table Private Endpoint' +//@[8:80) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:80) StringSyntax +//@[21:80) StringComplete |'Deploy DNS Zone Group for Storage-Table Private Endpoint'| +//@[80:81) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:602) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:602) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + privateDnsZoneId: { +//@[10:214) ObjectPropertySyntax +//@[10:26) IdentifierSyntax +//@[10:26) Identifier |privateDnsZoneId| +//@[26:27) Colon |:| +//@[28:214) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'privateDnsZoneId' +//@[14:45) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:45) StringSyntax +//@[27:45) StringComplete |'privateDnsZoneId'| +//@[45:46) NewLine |\n| + strongType: 'Microsoft.Network/privateDnsZones' +//@[14:61) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:61) StringSyntax +//@[26:61) StringComplete |'Microsoft.Network/privateDnsZones'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:86) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:86) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:29) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringSyntax +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:2917) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:2917) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:594) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:594) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:566) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:566) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:122) ArrayItemSyntax +//@[14:122) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Network/privateEndpoints' +//@[16:60) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:60) StringSyntax +//@[24:60) StringComplete |'Microsoft.Network/privateEndpoints'| +//@[60:61) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:408) ArrayItemSyntax +//@[14:408) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + count: { +//@[16:341) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |count| +//@[21:22) Colon |:| +//@[23:341) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' +//@[18:106) ObjectPropertySyntax +//@[18:23) IdentifierSyntax +//@[18:23) Identifier |field| +//@[23:24) Colon |:| +//@[25:106) StringSyntax +//@[25:106) StringComplete |'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]'| +//@[106:107) NewLine |\n| + where: { +//@[18:191) ObjectPropertySyntax +//@[18:23) IdentifierSyntax +//@[18:23) Identifier |where| +//@[23:24) Colon |:| +//@[25:191) ObjectSyntax +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' +//@[20:108) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]'| +//@[108:109) NewLine |\n| + equals: 'table' +//@[20:35) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:35) StringSyntax +//@[28:35) StringComplete |'table'| +//@[35:36) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + greaterOrEquals: 1 +//@[16:34) ObjectPropertySyntax +//@[16:31) IdentifierSyntax +//@[16:31) Identifier |greaterOrEquals| +//@[31:32) Colon |:| +//@[33:34) IntegerLiteralSyntax +//@[33:34) Integer |1| +//@[34:35) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:2290) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:2290) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:2213) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:2213) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' +//@[14:77) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:77) StringSyntax +//@[20:77) StringComplete |'Microsoft.Network/privateEndpoints/privateDnsZoneGroups'| +//@[77:78) NewLine |\n| + roleDefinitionIds: [ +//@[14:156) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:156) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:1941) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:1941) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:1897) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:1897) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:1410) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:1410) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[20:112) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:112) StringSyntax +//@[31:112) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[112:113) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:365) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:365) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + privateDnsZoneId: { +//@[22:104) ObjectPropertySyntax +//@[22:38) IdentifierSyntax +//@[22:38) Identifier |privateDnsZoneId| +//@[38:39) Colon |:| +//@[40:104) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + privateEndpointName: { +//@[22:107) ObjectPropertySyntax +//@[22:41) IdentifierSyntax +//@[22:41) Identifier |privateEndpointName| +//@[41:42) Colon |:| +//@[43:107) ObjectSyntax +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:835) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:835) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:780) ArrayItemSyntax +//@[22:780) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' +//@[24:100) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:100) StringSyntax +//@[30:100) StringComplete |'[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]'| +//@[100:101) NewLine |\n| + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' +//@[24:87) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:87) StringSyntax +//@[30:87) StringComplete |'Microsoft.Network/privateEndpoints/privateDnsZoneGroups'| +//@[87:88) NewLine |\n| + apiVersion: '2020-03-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2020-03-01'| +//@[48:49) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + properties: { +//@[24:431) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:431) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + privateDnsZoneConfigs: [ +//@[26:367) ObjectPropertySyntax +//@[26:47) IdentifierSyntax +//@[26:47) Identifier |privateDnsZoneConfigs| +//@[47:48) Colon |:| +//@[49:367) ArraySyntax +//@[49:50) LeftSquare |[| +//@[50:51) NewLine |\n| + { +//@[28:288) ArrayItemSyntax +//@[28:288) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + name: 'storageTable-privateDnsZone' +//@[30:65) ObjectPropertySyntax +//@[30:34) IdentifierSyntax +//@[30:34) Identifier |name| +//@[34:35) Colon |:| +//@[36:65) StringSyntax +//@[36:65) StringComplete |'storageTable-privateDnsZone'| +//@[65:66) NewLine |\n| + properties: { +//@[30:162) ObjectPropertySyntax +//@[30:40) IdentifierSyntax +//@[30:40) Identifier |properties| +//@[40:41) Colon |:| +//@[42:162) ObjectSyntax +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' +//@[32:86) ObjectPropertySyntax +//@[32:48) IdentifierSyntax +//@[32:48) Identifier |privateDnsZoneId| +//@[48:49) Colon |:| +//@[50:86) StringSyntax +//@[50:86) StringComplete |'[parameters(\'privateDnsZoneId\')]'| +//@[86:87) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:400) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:400) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + privateDnsZoneId: { +//@[20:127) ObjectPropertySyntax +//@[20:36) IdentifierSyntax +//@[20:36) Identifier |privateDnsZoneId| +//@[36:37) Colon |:| +//@[38:127) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + value: '[parameters(\'privateDnsZoneId\')]' +//@[22:65) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:65) StringSyntax +//@[29:65) StringComplete |'[parameters(\'privateDnsZoneId\')]'| +//@[65:66) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + privateEndpointName: { +//@[20:113) ObjectPropertySyntax +//@[20:39) IdentifierSyntax +//@[20:39) Identifier |privateEndpointName| +//@[39:40) Colon |:| +//@[41:113) ObjectSyntax +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-DNSZoneGroup-For-Table-PrivateEndpoint' +//@[6:59) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:59) StringSyntax +//@[12:59) StringComplete |'Deploy-DNSZoneGroup-For-Table-PrivateEndpoint'| +//@[59:60) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5844) ArrayItemSyntax +//@[4:5844) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:5786) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:5786) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Event Grid subscriptions to stream to a Log Analytics workspace when any Event Grid subscriptions which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:294) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:294) StringSyntax +//@[21:294) StringComplete |'Deploys the diagnostic settings for Event Grid subscriptions to stream to a Log Analytics workspace when any Event Grid subscriptions which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[294:295) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Event Grid subscriptions to Log Analytics workspace' +//@[8:105) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:105) StringSyntax +//@[21:105) StringComplete |'Deploy Diagnostic Settings for Event Grid subscriptions to Log Analytics workspace'| +//@[105:106) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1472) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1472) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:3770) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:3770) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:114) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:114) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.EventGrid/eventSubscriptions' +//@[12:60) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:60) StringSyntax +//@[20:60) StringComplete |'Microsoft.EventGrid/eventSubscriptions'| +//@[60:61) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:3623) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:3623) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:3546) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:3546) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:432) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:432) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:380) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:380) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:2719) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:2719) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:2675) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:2675) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:1961) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:1961) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:557) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:557) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1129) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1129) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1074) ArrayItemSyntax +//@[22:1074) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.EventGrid/eventSubscriptions/providers/diagnosticSettings' +//@[24:99) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:99) StringSyntax +//@[30:99) StringComplete |'Microsoft.EventGrid/eventSubscriptions/providers/diagnosticSettings'| +//@[99:100) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:636) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:636) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [] +//@[26:34) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:34) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) RightSquare |]| +//@[34:35) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:627) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:627) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-EventGridSub' +//@[6:45) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:45) StringSyntax +//@[12:45) StringComplete |'Deploy-Diagnostics-EventGridSub'| +//@[45:46) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:6945) ArrayItemSyntax +//@[4:6945) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:6885) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:6885) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Event Grid Topic to stream to a Log Analytics workspace when any Event Grid Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:278) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:278) StringSyntax +//@[21:278) StringComplete |'Deploys the diagnostic settings for Event Grid Topic to stream to a Log Analytics workspace when any Event Grid Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[278:279) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Event Grid Topic to Log Analytics workspace' +//@[8:97) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:97) StringSyntax +//@[21:97) StringComplete |'Deploy Diagnostic Settings for Event Grid Topic to Log Analytics workspace'| +//@[97:98) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4525) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4525) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:102) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:102) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.EventGrid/topics' +//@[12:48) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:48) StringSyntax +//@[20:48) StringComplete |'Microsoft.EventGrid/topics'| +//@[48:49) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4390) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4390) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4313) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4313) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3331) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3331) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3287) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3287) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2455) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2455) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1523) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1523) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1468) ArrayItemSyntax +//@[22:1468) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.EventGrid/topics/providers/diagnosticSettings' +//@[24:87) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:87) StringSyntax +//@[30:87) StringComplete |'Microsoft.EventGrid/topics/providers/diagnosticSettings'| +//@[87:88) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:1042) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1042) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:440) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:440) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:189) ArrayItemSyntax +//@[28:189) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DeliveryFailures' +//@[30:58) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:58) StringSyntax +//@[40:58) StringComplete |'DeliveryFailures'| +//@[58:59) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:188) ArrayItemSyntax +//@[28:188) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'PublishFailures' +//@[30:57) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:57) StringSyntax +//@[40:57) StringComplete |'PublishFailures'| +//@[57:58) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-EventGridTopic' +//@[6:47) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:47) StringSyntax +//@[12:47) StringComplete |'Deploy-Diagnostics-EventGridTopic'| +//@[47:48) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:7896) ArrayItemSyntax +//@[4:7896) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:7842) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:7842) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Event Hubs to stream to a Log Analytics workspace when any Event Hubs which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:266) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:266) StringSyntax +//@[21:266) StringComplete |'Deploys the diagnostic settings for Event Hubs to stream to a Log Analytics workspace when any Event Hubs which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[266:267) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Event Hubs to Log Analytics workspace' +//@[8:91) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:91) StringSyntax +//@[21:91) StringComplete |'Deploy Diagnostic Settings for Event Hubs to Log Analytics workspace'| +//@[91:92) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:5500) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:5500) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:105) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:105) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.EventHub/namespaces' +//@[12:51) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:51) StringSyntax +//@[20:51) StringComplete |'Microsoft.EventHub/namespaces'| +//@[51:52) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:5362) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:5362) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:5285) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:5285) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:4303) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:4303) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:4259) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:4259) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:3427) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:3427) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:2495) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:2495) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:2440) ArrayItemSyntax +//@[22:2440) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.EventHub/namespaces/providers/diagnosticSettings' +//@[24:90) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:90) StringSyntax +//@[30:90) StringComplete |'Microsoft.EventHub/namespaces/providers/diagnosticSettings'| +//@[90:91) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:2011) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:2011) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:1409) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:1409) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:184) ArrayItemSyntax +//@[28:184) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ArchiveLogs' +//@[30:53) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:53) StringSyntax +//@[40:53) StringComplete |'ArchiveLogs'| +//@[53:54) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:188) ArrayItemSyntax +//@[28:188) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'OperationalLogs' +//@[30:57) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:57) StringSyntax +//@[40:57) StringComplete |'OperationalLogs'| +//@[57:58) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:186) ArrayItemSyntax +//@[28:186) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AutoScaleLogs' +//@[30:55) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:55) StringSyntax +//@[40:55) StringComplete |'AutoScaleLogs'| +//@[55:56) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:193) ArrayItemSyntax +//@[28:193) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'KafkaCoordinatorLogs' +//@[30:62) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:62) StringSyntax +//@[40:62) StringComplete |'KafkaCoordinatorLogs'| +//@[62:63) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:191) ArrayItemSyntax +//@[28:191) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'KafkaUserErrorLogs' +//@[30:60) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:60) StringSyntax +//@[40:60) StringComplete |'KafkaUserErrorLogs'| +//@[60:61) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:200) ArrayItemSyntax +//@[28:200) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'EventHubVNetConnectionEvent' +//@[30:69) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:69) StringSyntax +//@[40:69) StringComplete |'EventHubVNetConnectionEvent'| +//@[69:70) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:199) ArrayItemSyntax +//@[28:199) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'CustomerManagedKeyUserLogs' +//@[30:68) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:68) StringSyntax +//@[40:68) StringComplete |'CustomerManagedKeyUserLogs'| +//@[68:69) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-EventHub' +//@[6:41) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:41) StringSyntax +//@[12:41) StringComplete |'Deploy-Diagnostics-EventHub'| +//@[41:42) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:6795) ArrayItemSyntax +//@[4:6795) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:6729) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:6729) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Event Grid System Topic to stream to a Log Analytics workspace when any Event Grid System Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:292) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:292) StringSyntax +//@[21:292) StringComplete |'Deploys the diagnostic settings for Event Grid System Topic to stream to a Log Analytics workspace when any Event Grid System Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[292:293) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Event Grid System Topic to Log Analytics workspace' +//@[8:104) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:104) StringSyntax +//@[21:104) StringComplete |'Deploy Diagnostic Settings for Event Grid System Topic to Log Analytics workspace'| +//@[104:105) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4348) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4348) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:108) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:108) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.EventGrid/systemTopics' +//@[12:54) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:54) StringSyntax +//@[20:54) StringComplete |'Microsoft.EventGrid/systemTopics'| +//@[54:55) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4207) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4207) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4130) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4130) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3148) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3148) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3104) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3104) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2272) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2272) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1340) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1340) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1285) ArrayItemSyntax +//@[22:1285) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.EventGrid/systemTopics/providers/diagnosticSettings' +//@[24:93) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:93) StringSyntax +//@[30:93) StringComplete |'Microsoft.EventGrid/systemTopics/providers/diagnosticSettings'| +//@[93:94) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:853) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:853) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:251) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:251) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:189) ArrayItemSyntax +//@[28:189) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DeliveryFailures' +//@[30:58) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:58) StringSyntax +//@[40:58) StringComplete |'DeliveryFailures'| +//@[58:59) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-EventGridSystemTopic' +//@[6:53) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:53) StringSyntax +//@[12:53) StringComplete |'Deploy-Diagnostics-EventGridSystemTopic'| +//@[53:54) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:6765) ArrayItemSyntax +//@[4:6765) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:6707) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:6707) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for ExpressRoute to stream to a Log Analytics workspace when any ExpressRoute which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:270) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:270) StringSyntax +//@[21:270) StringComplete |'Deploys the diagnostic settings for ExpressRoute to stream to a Log Analytics workspace when any ExpressRoute which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[270:271) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for ExpressRoute to Log Analytics workspace' +//@[8:93) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:93) StringSyntax +//@[21:93) StringComplete |'Deploy Diagnostic Settings for ExpressRoute to Log Analytics workspace'| +//@[93:94) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4359) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4359) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:114) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:114) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/expressRouteCircuits' +//@[12:60) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:60) StringSyntax +//@[20:60) StringComplete |'Microsoft.Network/expressRouteCircuits'| +//@[60:61) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4212) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4212) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4135) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4135) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3153) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3153) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3109) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3109) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2277) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2277) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1345) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1345) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1290) ArrayItemSyntax +//@[22:1290) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Network/expressRouteCircuits/providers/diagnosticSettings' +//@[24:99) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:99) StringSyntax +//@[30:99) StringComplete |'Microsoft.Network/expressRouteCircuits/providers/diagnosticSettings'| +//@[99:100) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:852) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:852) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:250) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:250) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:188) ArrayItemSyntax +//@[28:188) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'PeeringRouteLog' +//@[30:57) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:57) StringSyntax +//@[40:57) StringComplete |'PeeringRouteLog'| +//@[57:58) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-ExpressRoute' +//@[6:45) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:45) StringSyntax +//@[12:45) StringComplete |'Deploy-Diagnostics-ExpressRoute'| +//@[45:46) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:7143) ArrayItemSyntax +//@[4:7143) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:7089) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:7089) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Firewall to stream to a Log Analytics workspace when any Firewall which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:262) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:262) StringSyntax +//@[21:262) StringComplete |'Deploys the diagnostic settings for Firewall to stream to a Log Analytics workspace when any Firewall which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[262:263) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Firewall to Log Analytics workspace' +//@[8:89) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:89) StringSyntax +//@[21:89) StringComplete |'Deploy Diagnostic Settings for Firewall to Log Analytics workspace'| +//@[89:90) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4753) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4753) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:108) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:108) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/azureFirewalls' +//@[12:54) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:54) StringSyntax +//@[20:54) StringComplete |'Microsoft.Network/azureFirewalls'| +//@[54:55) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4612) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4612) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4535) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4535) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3553) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3553) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3509) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3509) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2677) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2677) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1745) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1745) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1690) ArrayItemSyntax +//@[22:1690) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Network/azureFirewalls/providers/diagnosticSettings' +//@[24:93) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:93) StringSyntax +//@[30:93) StringComplete |'Microsoft.Network/azureFirewalls/providers/diagnosticSettings'| +//@[93:94) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:1258) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1258) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:656) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:656) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:201) ArrayItemSyntax +//@[28:201) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AzureFirewallApplicationRule' +//@[30:70) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:70) StringSyntax +//@[40:70) StringComplete |'AzureFirewallApplicationRule'| +//@[70:71) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:197) ArrayItemSyntax +//@[28:197) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AzureFirewallNetworkRule' +//@[30:66) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:66) StringSyntax +//@[40:66) StringComplete |'AzureFirewallNetworkRule'| +//@[66:67) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:194) ArrayItemSyntax +//@[28:194) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AzureFirewallDnsProxy' +//@[30:63) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:63) StringSyntax +//@[40:63) StringComplete |'AzureFirewallDnsProxy'| +//@[63:64) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-Firewall' +//@[6:41) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:41) StringSyntax +//@[12:41) StringComplete |'Deploy-Diagnostics-Firewall'| +//@[41:42) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:6048) ArrayItemSyntax +//@[4:6048) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:6000) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:6000) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys Azure Firewall Manager policy in subscription where the policy is assigned.' +//@[8:106) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:106) StringSyntax +//@[21:106) StringComplete |'Deploys Azure Firewall Manager policy in subscription where the policy is assigned.'| +//@[106:107) NewLine |\n| + DisplayName: 'Deploy Azure Firewall Manager policy in the subscription' +//@[8:79) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:79) StringSyntax +//@[21:79) StringComplete |'Deploy Azure Firewall Manager policy in the subscription'| +//@[79:80) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1078) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1078) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + fwpolicy: { +//@[10:234) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |fwpolicy| +//@[18:19) Colon |:| +//@[20:234) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + type: 'Object' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'Object'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:144) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:144) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'fwpolicy' +//@[14:37) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:37) StringSyntax +//@[27:37) StringComplete |'fwpolicy'| +//@[37:38) NewLine |\n| + description: 'Object describing Azure Firewall Policy' +//@[14:68) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:68) StringSyntax +//@[27:68) StringComplete |'Object describing Azure Firewall Policy'| +//@[68:69) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: {} +//@[12:28) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:28) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) RightBrace |}| +//@[28:29) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + fwPolicyRegion: { +//@[10:260) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |fwPolicyRegion| +//@[24:25) Colon |:| +//@[26:260) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:193) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:193) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'fwPolicyRegion' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'fwPolicyRegion'| +//@[43:44) NewLine |\n| + description: 'Select Azure region for Azure Firewall Policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Select Azure region for Azure Firewall Policy'| +//@[74:75) NewLine |\n| + strongType: 'location' +//@[14:36) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:36) StringSyntax +//@[26:36) StringComplete |'location'| +//@[36:37) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + rgName: { +//@[10:194) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |rgName| +//@[16:17) Colon |:| +//@[18:194) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:135) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:135) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'rgName' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'rgName'| +//@[35:36) NewLine |\n| + description: 'Provide name for resource group.' +//@[14:61) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:61) StringSyntax +//@[27:61) StringComplete |'Provide name for resource group.'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:86) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:86) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:29) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringSyntax +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4595) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4595) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:184) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:184) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:156) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:156) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:121) ArrayItemSyntax +//@[14:121) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Resources/subscriptions' +//@[16:59) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringSyntax +//@[24:59) StringComplete |'Microsoft.Resources/subscriptions'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4378) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4378) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4301) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4301) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/firewallPolicies' +//@[14:56) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:56) StringSyntax +//@[20:56) StringComplete |'Microsoft.Network/firewallPolicies'| +//@[56:57) NewLine |\n| + deploymentScope: 'Subscription' +//@[14:45) ObjectPropertySyntax +//@[14:29) IdentifierSyntax +//@[14:29) Identifier |deploymentScope| +//@[29:30) Colon |:| +//@[31:45) StringSyntax +//@[31:45) StringComplete |'Subscription'| +//@[45:46) NewLine |\n| + existenceScope: 'ResourceGroup' +//@[14:45) ObjectPropertySyntax +//@[14:28) IdentifierSyntax +//@[14:28) Identifier |existenceScope| +//@[28:29) Colon |:| +//@[30:45) StringSyntax +//@[30:45) StringComplete |'ResourceGroup'| +//@[45:46) NewLine |\n| + resourceGroupName: '[parameters(\'rgName\')]' +//@[14:59) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |resourceGroupName| +//@[31:32) Colon |:| +//@[33:59) StringSyntax +//@[33:59) StringComplete |'[parameters(\'rgName\')]'| +//@[59:60) NewLine |\n| + roleDefinitionIds: [ +//@[14:156) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:156) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3898) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3898) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + location: 'northeurope' +//@[16:39) ObjectPropertySyntax +//@[16:24) IdentifierSyntax +//@[16:24) Identifier |location| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'northeurope'| +//@[39:40) NewLine |\n| + properties: { +//@[16:3814) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3814) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:395) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:395) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + rgName: { +//@[20:107) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |rgName| +//@[26:27) Colon |:| +//@[28:107) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'rgName\')]' +//@[22:55) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:55) StringSyntax +//@[29:55) StringComplete |'[parameters(\'rgName\')]'| +//@[55:56) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + fwPolicy: { +//@[20:111) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |fwPolicy| +//@[28:29) Colon |:| +//@[30:111) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[parameters(\'fwPolicy\')]' +//@[22:57) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:57) StringSyntax +//@[29:57) StringComplete |'[parameters(\'fwPolicy\')]'| +//@[57:58) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + fwPolicyRegion: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |fwPolicyRegion| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'fwPolicyRegion\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'fwPolicyRegion\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:3332) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:3332) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' +//@[20:122) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:122) StringSyntax +//@[31:122) StringComplete |'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json'| +//@[122:123) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:350) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:350) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + rgName: { +//@[22:94) ObjectPropertySyntax +//@[22:28) IdentifierSyntax +//@[22:28) Identifier |rgName| +//@[28:29) Colon |:| +//@[30:94) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + fwPolicy: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |fwPolicy| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'object' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'object'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + fwPolicyRegion: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |fwPolicyRegion| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:2730) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:2730) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:319) ArrayItemSyntax +//@[22:319) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/resourceGroups' +//@[24:66) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:66) StringSyntax +//@[30:66) StringComplete |'Microsoft.Resources/resourceGroups'| +//@[66:67) NewLine |\n| + apiVersion: '2018-05-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2018-05-01'| +//@[48:49) NewLine |\n| + name: '[parameters(\'rgName\')]' +//@[24:56) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:56) StringSyntax +//@[30:56) StringComplete |'[parameters(\'rgName\')]'| +//@[56:57) NewLine |\n| + location: '[deployment().location]' +//@[24:59) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:59) StringSyntax +//@[34:59) StringComplete |'[deployment().location]'| +//@[59:60) NewLine |\n| + properties: {} +//@[24:38) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:38) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) RightBrace |}| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:2355) ArrayItemSyntax +//@[22:2355) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:63) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringSyntax +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2018-05-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2018-05-01'| +//@[48:49) NewLine |\n| + name: 'fwpolicies' +//@[24:42) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:42) StringSyntax +//@[30:42) StringComplete |'fwpolicies'| +//@[42:43) NewLine |\n| + resourceGroup: '[parameters(\'rgName\')]' +//@[24:65) ObjectPropertySyntax +//@[24:37) IdentifierSyntax +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:65) StringSyntax +//@[39:65) StringComplete |'[parameters(\'rgName\')]'| +//@[65:66) NewLine |\n| + dependsOn: [ +//@[24:168) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:168) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' +//@[26:105) ArrayItemSyntax +//@[26:105) StringSyntax +//@[26:105) StringComplete |'[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]'| +//@[105:106) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:1916) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1916) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:45) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringSyntax +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:1806) ObjectPropertySyntax +//@[26:34) IdentifierSyntax +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:1806) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json' +//@[28:118) ObjectPropertySyntax +//@[28:37) StringSyntax +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:118) StringSyntax +//@[39:118) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json'| +//@[118:119) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:53) ObjectPropertySyntax +//@[28:42) IdentifierSyntax +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringSyntax +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:42) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:42) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:41) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:41) ObjectSyntax +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:1442) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:1442) ArraySyntax +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:1371) ArrayItemSyntax +//@[30:1371) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Network/firewallPolicies' +//@[32:74) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:74) StringSyntax +//@[38:74) StringComplete |'Microsoft.Network/firewallPolicies'| +//@[74:75) NewLine |\n| + apiVersion: '2019-09-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2019-09-01'| +//@[56:57) NewLine |\n| + name: '[parameters(\'fwpolicy\').firewallPolicyName]' +//@[32:85) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:85) StringSyntax +//@[38:85) StringComplete |'[parameters(\'fwpolicy\').firewallPolicyName]'| +//@[85:86) NewLine |\n| + location: '[parameters(\'fwpolicy\').location]' +//@[32:79) ObjectPropertySyntax +//@[32:40) IdentifierSyntax +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:79) StringSyntax +//@[42:79) StringComplete |'[parameters(\'fwpolicy\').location]'| +//@[79:80) NewLine |\n| + dependsOn: [] +//@[32:45) ObjectPropertySyntax +//@[32:41) IdentifierSyntax +//@[32:41) Identifier |dependsOn| +//@[41:42) Colon |:| +//@[43:45) ArraySyntax +//@[43:44) LeftSquare |[| +//@[44:45) RightSquare |]| +//@[45:46) NewLine |\n| + tags: {} +//@[32:40) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |tags| +//@[36:37) Colon |:| +//@[38:40) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + properties: {} +//@[32:46) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:46) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) RightBrace |}| +//@[46:47) NewLine |\n| + resources: [ +//@[32:875) ObjectPropertySyntax +//@[32:41) IdentifierSyntax +//@[32:41) Identifier |resources| +//@[41:42) Colon |:| +//@[43:875) ArraySyntax +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + { +//@[34:796) ArrayItemSyntax +//@[34:796) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + type: 'ruleGroups' +//@[36:54) ObjectPropertySyntax +//@[36:40) IdentifierSyntax +//@[36:40) Identifier |type| +//@[40:41) Colon |:| +//@[42:54) StringSyntax +//@[42:54) StringComplete |'ruleGroups'| +//@[54:55) NewLine |\n| + apiVersion: '2019-09-01' +//@[36:60) ObjectPropertySyntax +//@[36:46) IdentifierSyntax +//@[36:46) Identifier |apiVersion| +//@[46:47) Colon |:| +//@[48:60) StringSyntax +//@[48:60) StringComplete |'2019-09-01'| +//@[60:61) NewLine |\n| + name: '[parameters(\'fwpolicy\').ruleGroups.name]' +//@[36:86) ObjectPropertySyntax +//@[36:40) IdentifierSyntax +//@[36:40) Identifier |name| +//@[40:41) Colon |:| +//@[42:86) StringSyntax +//@[42:86) StringComplete |'[parameters(\'fwpolicy\').ruleGroups.name]'| +//@[86:87) NewLine |\n| + dependsOn: [ +//@[36:223) ObjectPropertySyntax +//@[36:45) IdentifierSyntax +//@[36:45) Identifier |dependsOn| +//@[45:46) Colon |:| +//@[47:223) ArraySyntax +//@[47:48) LeftSquare |[| +//@[48:49) NewLine |\n| + '[resourceId(\'Microsoft.Network/firewallPolicies\',parameters(\'fwpolicy\').firewallPolicyName)]' +//@[38:136) ArrayItemSyntax +//@[38:136) StringSyntax +//@[38:136) StringComplete |'[resourceId(\'Microsoft.Network/firewallPolicies\',parameters(\'fwpolicy\').firewallPolicyName)]'| +//@[136:137) NewLine |\n| + ] +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[36:297) ObjectPropertySyntax +//@[36:46) IdentifierSyntax +//@[36:46) Identifier |properties| +//@[46:47) Colon |:| +//@[48:297) ObjectSyntax +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + priority: '[parameters(\'fwpolicy\').ruleGroups.properties.priority]' +//@[38:107) ObjectPropertySyntax +//@[38:46) IdentifierSyntax +//@[38:46) Identifier |priority| +//@[46:47) Colon |:| +//@[48:107) StringSyntax +//@[48:107) StringComplete |'[parameters(\'fwpolicy\').ruleGroups.properties.priority]'| +//@[107:108) NewLine |\n| + rules: '[parameters(\'fwpolicy\').ruleGroups.properties.rules]' +//@[38:101) ObjectPropertySyntax +//@[38:43) IdentifierSyntax +//@[38:43) Identifier |rules| +//@[43:44) Colon |:| +//@[45:101) StringSyntax +//@[45:101) StringComplete |'[parameters(\'fwpolicy\').ruleGroups.properties.rules]'| +//@[101:102) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + ] +//@[32:33) RightSquare |]| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + outputs: {} +//@[28:39) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |outputs| +//@[35:36) Colon |:| +//@[37:39) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-FirewallPolicy' +//@[6:35) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:35) StringSyntax +//@[12:35) StringComplete |'Deploy-FirewallPolicy'| +//@[35:36) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:6947) ArrayItemSyntax +//@[4:6947) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:6892) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:6892) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Front Door to stream to a Log Analytics workspace when any Front Door which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:266) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:266) StringSyntax +//@[21:266) StringComplete |'Deploys the diagnostic settings for Front Door to stream to a Log Analytics workspace when any Front Door which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[266:267) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Front Door to Log Analytics workspace' +//@[8:91) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:91) StringSyntax +//@[21:91) StringComplete |'Deploy Diagnostic Settings for Front Door to Log Analytics workspace'| +//@[91:92) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4550) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4550) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:104) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:104) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/frontDoors' +//@[12:50) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:50) StringSyntax +//@[20:50) StringComplete |'Microsoft.Network/frontDoors'| +//@[50:51) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4413) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4413) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4336) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4336) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3354) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3354) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3310) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3310) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2478) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2478) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1546) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1546) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1491) ArrayItemSyntax +//@[22:1491) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Network/frontDoors/providers/diagnosticSettings' +//@[24:89) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:89) StringSyntax +//@[30:89) StringComplete |'Microsoft.Network/frontDoors/providers/diagnosticSettings'| +//@[89:90) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:1063) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1063) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:461) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:461) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:191) ArrayItemSyntax +//@[28:191) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'FrontdoorAccessLog' +//@[30:60) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:60) StringSyntax +//@[40:60) StringComplete |'FrontdoorAccessLog'| +//@[60:61) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:207) ArrayItemSyntax +//@[28:207) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'FrontdoorWebApplicationFirewallLog' +//@[30:76) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:76) StringSyntax +//@[40:76) StringComplete |'FrontdoorWebApplicationFirewallLog'| +//@[76:77) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-FrontDoor' +//@[6:42) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:42) StringSyntax +//@[12:42) StringComplete |'Deploy-Diagnostics-FrontDoor'| +//@[42:43) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:6918) ArrayItemSyntax +//@[4:6918) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:6864) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:6864) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Azure Function App to stream to a Log Analytics workspace when any function app which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:276) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:276) StringSyntax +//@[21:276) StringComplete |'Deploys the diagnostic settings for Azure Function App to stream to a Log Analytics workspace when any function app which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[276:277) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Azure Function App to Log Analytics workspace' +//@[8:99) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:99) StringSyntax +//@[21:99) StringComplete |'Deploy Diagnostic Settings for Azure Function App to Log Analytics workspace'| +//@[99:100) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4504) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4504) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:278) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:278) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:250) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:250) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:107) ArrayItemSyntax +//@[14:107) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Web/sites' +//@[16:45) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:45) StringSyntax +//@[24:45) StringComplete |'Microsoft.Web/sites'| +//@[45:46) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:107) ArrayItemSyntax +//@[14:107) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + value: '[field(\'kind\')]' +//@[16:42) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:42) StringSyntax +//@[23:42) StringComplete |'[field(\'kind\')]'| +//@[42:43) NewLine |\n| + notEquals: 'app' +//@[16:32) ObjectPropertySyntax +//@[16:25) IdentifierSyntax +//@[16:25) Identifier |notEquals| +//@[25:26) Colon |:| +//@[27:32) StringSyntax +//@[27:32) StringComplete |'app'| +//@[32:33) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4193) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4193) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4116) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4116) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3134) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3134) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3090) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3090) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2258) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2258) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1326) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1326) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1271) ArrayItemSyntax +//@[22:1271) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Web/sites/providers/diagnosticSettings' +//@[24:80) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:80) StringSyntax +//@[30:80) StringComplete |'Microsoft.Web/sites/providers/diagnosticSettings'| +//@[80:81) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:852) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:852) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:250) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:250) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:188) ArrayItemSyntax +//@[28:188) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'FunctionAppLogs' +//@[30:57) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:57) StringSyntax +//@[40:57) StringComplete |'FunctionAppLogs'| +//@[57:58) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-Function' +//@[6:41) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:41) StringSyntax +//@[12:41) StringComplete |'Deploy-Diagnostics-Function'| +//@[41:42) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5776) ArrayItemSyntax +//@[4:5776) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:5721) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:5721) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for HDInsight to stream to a Log Analytics workspace when any HDInsight which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:264) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:264) StringSyntax +//@[21:264) StringComplete |'Deploys the diagnostic settings for HDInsight to stream to a Log Analytics workspace when any HDInsight which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[264:265) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for HDInsight to Log Analytics workspace' +//@[8:90) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:90) StringSyntax +//@[21:90) StringComplete |'Deploy Diagnostic Settings for HDInsight to Log Analytics workspace'| +//@[90:91) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1472) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1472) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:3750) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:3750) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:104) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:104) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.HDInsight/clusters' +//@[12:50) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:50) StringSyntax +//@[20:50) StringComplete |'Microsoft.HDInsight/clusters'| +//@[50:51) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:3613) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:3613) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:3536) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:3536) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:432) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:432) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:380) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:380) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:2709) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:2709) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:2665) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:2665) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:1951) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:1951) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:557) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:557) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1119) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1119) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1064) ArrayItemSyntax +//@[22:1064) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.HDInsight/clusters/providers/diagnosticSettings' +//@[24:89) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:89) StringSyntax +//@[30:89) StringComplete |'Microsoft.HDInsight/clusters/providers/diagnosticSettings'| +//@[89:90) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:636) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:636) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [] +//@[26:34) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:34) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) RightSquare |]| +//@[34:35) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:627) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:627) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-HDInsight' +//@[6:42) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:42) StringSyntax +//@[12:42) StringComplete |'Deploy-Diagnostics-HDInsight'| +//@[42:43) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:9169) ArrayItemSyntax +//@[4:9169) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:9117) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:9117) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for IoT Hub to stream to a Log Analytics workspace when any IoT Hub which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:260) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:260) StringSyntax +//@[21:260) StringComplete |'Deploys the diagnostic settings for IoT Hub to stream to a Log Analytics workspace when any IoT Hub which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[260:261) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for IoT Hub to Log Analytics workspace' +//@[8:88) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:88) StringSyntax +//@[21:88) StringComplete |'Deploy Diagnostic Settings for IoT Hub to Log Analytics workspace'| +//@[88:89) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:6784) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:6784) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:101) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:101) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Devices/IotHubs' +//@[12:47) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:47) StringSyntax +//@[20:47) StringComplete |'Microsoft.Devices/IotHubs'| +//@[47:48) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:6650) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:6650) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:6573) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:6573) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:5591) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:5591) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:5547) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:5547) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:4715) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:4715) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:3783) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:3783) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:3728) ArrayItemSyntax +//@[22:3728) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Devices/IotHubs/providers/diagnosticSettings' +//@[24:86) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:86) StringSyntax +//@[30:86) StringComplete |'Microsoft.Devices/IotHubs/providers/diagnosticSettings'| +//@[86:87) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:3303) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:3303) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:2701) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:2701) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:184) ArrayItemSyntax +//@[28:184) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Connections' +//@[30:53) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:53) StringSyntax +//@[40:53) StringComplete |'Connections'| +//@[53:54) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:188) ArrayItemSyntax +//@[28:188) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DeviceTelemetry' +//@[30:57) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:57) StringSyntax +//@[40:57) StringComplete |'DeviceTelemetry'| +//@[57:58) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:184) ArrayItemSyntax +//@[28:184) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'C2DCommands' +//@[30:53) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:53) StringSyntax +//@[40:53) StringComplete |'C2DCommands'| +//@[53:54) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:197) ArrayItemSyntax +//@[28:197) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DeviceIdentityOperations' +//@[30:66) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:66) StringSyntax +//@[40:66) StringComplete |'DeviceIdentityOperations'| +//@[66:67) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:193) ArrayItemSyntax +//@[28:193) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'FileUploadOperations' +//@[30:62) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:62) StringSyntax +//@[40:62) StringComplete |'FileUploadOperations'| +//@[62:63) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:179) ArrayItemSyntax +//@[28:179) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Routes' +//@[30:48) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:48) StringSyntax +//@[40:48) StringComplete |'Routes'| +//@[48:49) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:190) ArrayItemSyntax +//@[28:190) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'D2CTwinOperations' +//@[30:59) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:59) StringSyntax +//@[40:59) StringComplete |'D2CTwinOperations'| +//@[59:60) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:190) ArrayItemSyntax +//@[28:190) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'C2DTwinOperations' +//@[30:59) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:59) StringSyntax +//@[40:59) StringComplete |'C2DTwinOperations'| +//@[59:60) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:184) ArrayItemSyntax +//@[28:184) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'TwinQueries' +//@[30:53) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:53) StringSyntax +//@[40:53) StringComplete |'TwinQueries'| +//@[53:54) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:187) ArrayItemSyntax +//@[28:187) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'JobsOperations' +//@[30:56) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:56) StringSyntax +//@[40:56) StringComplete |'JobsOperations'| +//@[56:57) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:186) ArrayItemSyntax +//@[28:186) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DirectMethods' +//@[30:55) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:55) StringSyntax +//@[40:55) StringComplete |'DirectMethods'| +//@[55:56) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:191) ArrayItemSyntax +//@[28:191) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DistributedTracing' +//@[30:60) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:60) StringSyntax +//@[40:60) StringComplete |'DistributedTracing'| +//@[60:61) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:187) ArrayItemSyntax +//@[28:187) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Configurations' +//@[30:56) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:56) StringSyntax +//@[40:56) StringComplete |'Configurations'| +//@[56:57) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:186) ArrayItemSyntax +//@[28:186) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DeviceStreams' +//@[30:55) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:55) StringSyntax +//@[40:55) StringComplete |'DeviceStreams'| +//@[55:56) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-iotHub' +//@[6:39) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:39) StringSyntax +//@[12:39) StringComplete |'Deploy-Diagnostics-iotHub'| +//@[39:40) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:6721) ArrayItemSyntax +//@[4:6721) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:6667) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:6667) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Key Vault to stream to a Log Analytics workspace when any Key Vault which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:264) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:264) StringSyntax +//@[21:264) StringComplete |'Deploys the diagnostic settings for Key Vault to stream to a Log Analytics workspace when any Key Vault which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[264:265) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Key Vault to Log Analytics workspace' +//@[8:90) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:90) StringSyntax +//@[21:90) StringComplete |'Deploy Diagnostic Settings for Key Vault to Log Analytics workspace'| +//@[90:91) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4328) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4328) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:101) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:101) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.KeyVault/vaults' +//@[12:47) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:47) StringSyntax +//@[20:47) StringComplete |'Microsoft.KeyVault/vaults'| +//@[47:48) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4194) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4194) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4117) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4117) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3135) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3135) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3091) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3091) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2259) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2259) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1327) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1327) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1272) ArrayItemSyntax +//@[22:1272) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.KeyVault/vaults/providers/diagnosticSettings' +//@[24:86) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:86) StringSyntax +//@[30:86) StringComplete |'Microsoft.KeyVault/vaults/providers/diagnosticSettings'| +//@[86:87) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:847) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:847) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:245) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:245) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:183) ArrayItemSyntax +//@[28:183) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AuditEvent' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AuditEvent'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-KeyVault' +//@[6:41) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:41) StringSyntax +//@[12:41) StringComplete |'Deploy-Diagnostics-KeyVault'| +//@[41:42) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:1199) ArrayItemSyntax +//@[4:1199) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:1144) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:1144) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies creation of Key Vaults with IP Firewall exposed to all public endpoints' +//@[8:113) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:113) StringSyntax +//@[21:113) StringComplete |'This policy denies creation of Key Vaults with IP Firewall exposed to all public endpoints'| +//@[113:114) NewLine |\n| + DisplayName: 'Public network access should be disabled for KeyVault' +//@[8:76) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:76) StringSyntax +//@[21:76) StringComplete |'Public network access should be disabled for KeyVault'| +//@[76:77) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:383) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:383) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:351) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:351) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:110) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:110) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:88) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:88) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Key Vault' +//@[10:31) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:31) StringSyntax +//@[20:31) StringComplete |'Key Vault'| +//@[31:32) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:428) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:428) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:319) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:319) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:291) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:291) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:113) ArrayItemSyntax +//@[14:113) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.KeyVault/vaults' +//@[16:51) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:51) StringSyntax +//@[24:51) StringComplete |'Microsoft.KeyVault/vaults'| +//@[51:52) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:142) ArrayItemSyntax +//@[14:142) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.KeyVault/vaults/networkAcls.defaultAction' +//@[16:76) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:76) StringSyntax +//@[23:76) StringComplete |'Microsoft.KeyVault/vaults/networkAcls.defaultAction'| +//@[76:77) NewLine |\n| + notequals: 'Deny' +//@[16:33) ObjectPropertySyntax +//@[16:25) IdentifierSyntax +//@[16:25) Identifier |notequals| +//@[25:26) Colon |:| +//@[27:33) StringSyntax +//@[27:33) StringComplete |'Deny'| +//@[33:34) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:76) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:76) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-PublicEndpoint-KeyVault' +//@[6:42) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:42) StringSyntax +//@[12:42) StringComplete |'Deny-PublicEndpoint-KeyVault'| +//@[42:43) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:1076) ArrayItemSyntax +//@[4:1076) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:1029) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:1029) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy enables you to ensure when a Key Vault is created with out soft delete enabled it will be added.' +//@[8:131) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:131) StringSyntax +//@[21:131) StringComplete |'This policy enables you to ensure when a Key Vault is created with out soft delete enabled it will be added.'| +//@[131:132) NewLine |\n| + DisplayName: 'KeyVault SoftDelete should be enabled' +//@[8:60) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:60) StringSyntax +//@[21:60) StringComplete |'KeyVault SoftDelete should be enabled'| +//@[60:61) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: {} +//@[8:22) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:22) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) RightBrace |}| +//@[22:23) NewLine |\n| + metadata: { +//@[8:88) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:88) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Key Vault' +//@[10:31) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:31) StringSyntax +//@[20:31) StringComplete |'Key Vault'| +//@[31:32) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:672) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:672) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:416) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:416) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + anyOf: [ +//@[12:388) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |anyOf| +//@[17:18) Colon |:| +//@[19:388) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:353) ArrayItemSyntax +//@[14:353) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[16:321) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:321) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:129) ArrayItemSyntax +//@[18:129) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'type' +//@[20:33) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:33) StringSyntax +//@[27:33) StringComplete |'type'| +//@[33:34) NewLine |\n| + equals: 'Microsoft.KeyVault/vaults' +//@[20:55) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:55) StringSyntax +//@[28:55) StringComplete |'Microsoft.KeyVault/vaults'| +//@[55:56) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:148) ArrayItemSyntax +//@[18:148) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.KeyVault/vaults/enableSoftDelete' +//@[20:71) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:71) StringSyntax +//@[27:71) StringComplete |'Microsoft.KeyVault/vaults/enableSoftDelete'| +//@[71:72) NewLine |\n| + notEquals: false +//@[20:36) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |notEquals| +//@[29:30) Colon |:| +//@[31:36) BooleanLiteralSyntax +//@[31:36) FalseKeyword |false| +//@[36:37) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:223) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:223) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: 'append' +//@[12:28) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:28) StringSyntax +//@[20:28) StringComplete |'append'| +//@[28:29) NewLine |\n| + details: [ +//@[12:164) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:164) ArraySyntax +//@[21:22) LeftSquare |[| +//@[22:23) NewLine |\n| + { +//@[14:127) ArrayItemSyntax +//@[14:127) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.KeyVault/vaults/enableSoftDelete' +//@[16:67) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:67) StringSyntax +//@[23:67) StringComplete |'Microsoft.KeyVault/vaults/enableSoftDelete'| +//@[67:68) NewLine |\n| + value: true +//@[16:27) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:27) BooleanLiteralSyntax +//@[23:27) TrueKeyword |true| +//@[27:28) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Append-KV-SoftDelete' +//@[6:34) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:34) StringSyntax +//@[12:34) StringComplete |'Append-KV-SoftDelete'| +//@[34:35) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:6964) ArrayItemSyntax +//@[4:6964) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:6906) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:6906) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Load Balancer to stream to a Log Analytics workspace when any Load Balancer which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:272) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:272) StringSyntax +//@[21:272) StringComplete |'Deploys the diagnostic settings for Load Balancer to stream to a Log Analytics workspace when any Load Balancer which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[272:273) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Load Balancer to Log Analytics workspace' +//@[8:94) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:94) StringSyntax +//@[21:94) StringComplete |'Deploy Diagnostic Settings for Load Balancer to Log Analytics workspace'| +//@[94:95) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4555) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4555) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:107) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:107) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/loadBalancers' +//@[12:53) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:53) StringSyntax +//@[20:53) StringComplete |'Microsoft.Network/loadBalancers'| +//@[53:54) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4415) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4415) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4338) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4338) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3356) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3356) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3312) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3312) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2480) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2480) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1548) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1548) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1493) ArrayItemSyntax +//@[22:1493) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Network/loadBalancers/providers/diagnosticSettings' +//@[24:92) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:92) StringSyntax +//@[30:92) StringComplete |'Microsoft.Network/loadBalancers/providers/diagnosticSettings'| +//@[92:93) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:1062) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1062) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:460) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:460) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:195) ArrayItemSyntax +//@[28:195) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'LoadBalancerAlertEvent' +//@[30:64) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:64) StringSyntax +//@[40:64) StringComplete |'LoadBalancerAlertEvent'| +//@[64:65) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:202) ArrayItemSyntax +//@[28:202) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'LoadBalancerProbeHealthStatus' +//@[30:71) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:71) StringSyntax +//@[40:71) StringComplete |'LoadBalancerProbeHealthStatus'| +//@[71:72) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-LoadBalancer' +//@[6:45) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:45) StringSyntax +//@[12:45) StringComplete |'Deploy-Diagnostics-LoadBalancer'| +//@[45:46) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:19392) ArrayItemSyntax +//@[4:19392) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:19349) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19349) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploy the configurations to the Log Analytics in the subscription. This includes a list of solutions like update, automation etc and enables the vminsight counters. ' +//@[8:190) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:190) StringSyntax +//@[21:190) StringComplete |'Deploy the configurations to the Log Analytics in the subscription. This includes a list of solutions like update, automation etc and enables the vminsight counters. '| +//@[190:191) NewLine |\n| + DisplayName: 'Deploy the configurations to the Log Analytics in the subscription' +//@[8:89) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:89) StringSyntax +//@[21:89) StringComplete |'Deploy the configurations to the Log Analytics in the subscription'| +//@[89:90) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:842) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:842) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + workspaceName: { +//@[10:224) ObjectPropertySyntax +//@[10:23) IdentifierSyntax +//@[10:23) Identifier |workspaceName| +//@[23:24) Colon |:| +//@[25:224) ObjectSyntax +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:158) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:158) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'workspaceName' +//@[14:42) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:42) StringSyntax +//@[27:42) StringComplete |'workspaceName'| +//@[42:43) NewLine |\n| + description: 'Provide name of existing Log Analytics workspace' +//@[14:77) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:77) StringSyntax +//@[27:77) StringComplete |'Provide name of existing Log Analytics workspace'| +//@[77:78) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + workspaceRegion: { +//@[10:229) ObjectPropertySyntax +//@[10:25) IdentifierSyntax +//@[10:25) Identifier |workspaceRegion| +//@[25:26) Colon |:| +//@[27:229) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:161) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:161) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'workspaceRegion' +//@[14:44) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:44) StringSyntax +//@[27:44) StringComplete |'workspaceRegion'| +//@[44:45) NewLine |\n| + description: 'Select region of existing Log Analytics workspace' +//@[14:78) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Select region of existing Log Analytics workspace'| +//@[78:79) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18083) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:18083) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:191) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:191) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:163) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:163) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:128) ArrayItemSyntax +//@[14:128) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.OperationalInsights/workspaces' +//@[16:66) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:66) StringSyntax +//@[24:66) StringComplete |'Microsoft.OperationalInsights/workspaces'| +//@[66:67) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:17859) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17859) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:17782) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:17782) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.OperationalInsights/workspaces' +//@[14:62) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:62) StringSyntax +//@[20:62) StringComplete |'Microsoft.OperationalInsights/workspaces'| +//@[62:63) NewLine |\n| + deploymentScope: 'resourceGroup' +//@[14:46) ObjectPropertySyntax +//@[14:29) IdentifierSyntax +//@[14:29) Identifier |deploymentScope| +//@[29:30) Colon |:| +//@[31:46) StringSyntax +//@[31:46) StringComplete |'resourceGroup'| +//@[46:47) NewLine |\n| + existenceScope: 'Subscription' +//@[14:44) ObjectPropertySyntax +//@[14:28) IdentifierSyntax +//@[14:28) Identifier |existenceScope| +//@[28:29) Colon |:| +//@[30:44) StringSyntax +//@[30:44) StringComplete |'Subscription'| +//@[44:45) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + existenceCondition: { +//@[14:370) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:370) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:318) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:318) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:133) ArrayItemSyntax +//@[18:133) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'name' +//@[20:33) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:33) StringSyntax +//@[27:33) StringComplete |'name'| +//@[33:34) NewLine |\n| + like: '[parameters(\'workspaceName\')]' +//@[20:59) ObjectPropertySyntax +//@[20:24) IdentifierSyntax +//@[20:24) Identifier |like| +//@[24:25) Colon |:| +//@[26:59) StringSyntax +//@[26:59) StringComplete |'[parameters(\'workspaceName\')]'| +//@[59:60) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:141) ArrayItemSyntax +//@[18:141) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'location' +//@[20:37) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:37) StringSyntax +//@[27:37) StringComplete |'location'| +//@[37:38) NewLine |\n| + equals: '[parameters(\'workspaceRegion\')]' +//@[20:63) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:63) StringSyntax +//@[28:63) StringComplete |'[parameters(\'workspaceRegion\')]'| +//@[63:64) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + deployment: { +//@[14:16956) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:16956) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:16912) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:16912) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:299) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:299) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + workspaceName: { +//@[20:121) ObjectPropertySyntax +//@[20:33) IdentifierSyntax +//@[20:33) Identifier |workspaceName| +//@[33:34) Colon |:| +//@[35:121) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + value: '[parameters(\'workspaceName\')]' +//@[22:62) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:62) StringSyntax +//@[29:62) StringComplete |'[parameters(\'workspaceName\')]'| +//@[62:63) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + workspaceRegion: { +//@[20:125) ObjectPropertySyntax +//@[20:35) IdentifierSyntax +//@[20:35) Identifier |workspaceRegion| +//@[35:36) Colon |:| +//@[37:125) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + value: '[parameters(\'workspaceRegion\')]' +//@[22:64) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:64) StringSyntax +//@[29:64) StringComplete |'[parameters(\'workspaceRegion\')]'| +//@[64:65) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:16526) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:16526) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[20:112) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:112) StringSyntax +//@[31:112) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[112:113) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:261) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:261) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + workspaceName: { +//@[22:101) ObjectPropertySyntax +//@[22:35) IdentifierSyntax +//@[22:35) Identifier |workspaceName| +//@[35:36) Colon |:| +//@[37:101) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + workspaceRegion: { +//@[22:103) ObjectPropertySyntax +//@[22:37) IdentifierSyntax +//@[22:37) Identifier |workspaceRegion| +//@[37:38) Colon |:| +//@[39:103) ObjectSyntax +//@[39:40) LeftBrace |{| +//@[40:41) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: { +//@[20:9666) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:9666) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) NewLine |\n| + vmInsightsPerfCounters: { +//@[22:7014) ObjectPropertySyntax +//@[22:44) IdentifierSyntax +//@[22:44) Identifier |vmInsightsPerfCounters| +//@[44:45) Colon |:| +//@[46:7014) ObjectSyntax +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + windowsArray: [ +//@[24:4450) ObjectPropertySyntax +//@[24:36) IdentifierSyntax +//@[24:36) Identifier |windowsArray| +//@[36:37) Colon |:| +//@[38:4450) ArraySyntax +//@[38:39) LeftSquare |[| +//@[39:40) NewLine |\n| + { +//@[26:307) ArrayItemSyntax +//@[26:307) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter1' +//@[28:47) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:47) StringSyntax +//@[37:47) StringComplete |'counter1'| +//@[47:48) NewLine |\n| + objectName: 'LogicalDisk' +//@[28:53) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:53) StringSyntax +//@[40:53) StringComplete |'LogicalDisk'| +//@[53:54) NewLine |\n| + counterName: '% Free Space' +//@[28:55) ObjectPropertySyntax +//@[28:39) IdentifierSyntax +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:55) StringSyntax +//@[41:55) StringComplete |'% Free Space'| +//@[55:56) NewLine |\n| + instanceName: '*' +//@[28:45) ObjectPropertySyntax +//@[28:40) IdentifierSyntax +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringSyntax +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:47) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) IntegerLiteralSyntax +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:313) ArrayItemSyntax +//@[26:313) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter2' +//@[28:47) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:47) StringSyntax +//@[37:47) StringComplete |'counter2'| +//@[47:48) NewLine |\n| + objectName: 'LogicalDisk' +//@[28:53) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:53) StringSyntax +//@[40:53) StringComplete |'LogicalDisk'| +//@[53:54) NewLine |\n| + counterName: 'Avg. Disk sec/Read' +//@[28:61) ObjectPropertySyntax +//@[28:39) IdentifierSyntax +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:61) StringSyntax +//@[41:61) StringComplete |'Avg. Disk sec/Read'| +//@[61:62) NewLine |\n| + instanceName: '*' +//@[28:45) ObjectPropertySyntax +//@[28:40) IdentifierSyntax +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringSyntax +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:47) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) IntegerLiteralSyntax +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:317) ArrayItemSyntax +//@[26:317) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter3' +//@[28:47) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:47) StringSyntax +//@[37:47) StringComplete |'counter3'| +//@[47:48) NewLine |\n| + objectName: 'LogicalDisk' +//@[28:53) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:53) StringSyntax +//@[40:53) StringComplete |'LogicalDisk'| +//@[53:54) NewLine |\n| + counterName: 'Avg. Disk sec/Transfer' +//@[28:65) ObjectPropertySyntax +//@[28:39) IdentifierSyntax +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:65) StringSyntax +//@[41:65) StringComplete |'Avg. Disk sec/Transfer'| +//@[65:66) NewLine |\n| + instanceName: '*' +//@[28:45) ObjectPropertySyntax +//@[28:40) IdentifierSyntax +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringSyntax +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:47) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) IntegerLiteralSyntax +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:314) ArrayItemSyntax +//@[26:314) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter4' +//@[28:47) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:47) StringSyntax +//@[37:47) StringComplete |'counter4'| +//@[47:48) NewLine |\n| + objectName: 'LogicalDisk' +//@[28:53) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:53) StringSyntax +//@[40:53) StringComplete |'LogicalDisk'| +//@[53:54) NewLine |\n| + counterName: 'Avg. Disk sec/Write' +//@[28:62) ObjectPropertySyntax +//@[28:39) IdentifierSyntax +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:62) StringSyntax +//@[41:62) StringComplete |'Avg. Disk sec/Write'| +//@[62:63) NewLine |\n| + instanceName: '*' +//@[28:45) ObjectPropertySyntax +//@[28:40) IdentifierSyntax +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringSyntax +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:47) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) IntegerLiteralSyntax +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:314) ArrayItemSyntax +//@[26:314) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter5' +//@[28:47) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:47) StringSyntax +//@[37:47) StringComplete |'counter5'| +//@[47:48) NewLine |\n| + objectName: 'LogicalDisk' +//@[28:53) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:53) StringSyntax +//@[40:53) StringComplete |'LogicalDisk'| +//@[53:54) NewLine |\n| + counterName: 'Disk Read Bytes/sec' +//@[28:62) ObjectPropertySyntax +//@[28:39) IdentifierSyntax +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:62) StringSyntax +//@[41:62) StringComplete |'Disk Read Bytes/sec'| +//@[62:63) NewLine |\n| + instanceName: '*' +//@[28:45) ObjectPropertySyntax +//@[28:40) IdentifierSyntax +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringSyntax +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:47) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) IntegerLiteralSyntax +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:309) ArrayItemSyntax +//@[26:309) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter6' +//@[28:47) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:47) StringSyntax +//@[37:47) StringComplete |'counter6'| +//@[47:48) NewLine |\n| + objectName: 'LogicalDisk' +//@[28:53) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:53) StringSyntax +//@[40:53) StringComplete |'LogicalDisk'| +//@[53:54) NewLine |\n| + counterName: 'Disk Reads/sec' +//@[28:57) ObjectPropertySyntax +//@[28:39) IdentifierSyntax +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:57) StringSyntax +//@[41:57) StringComplete |'Disk Reads/sec'| +//@[57:58) NewLine |\n| + instanceName: '*' +//@[28:45) ObjectPropertySyntax +//@[28:40) IdentifierSyntax +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringSyntax +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:47) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) IntegerLiteralSyntax +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:313) ArrayItemSyntax +//@[26:313) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter7' +//@[28:47) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:47) StringSyntax +//@[37:47) StringComplete |'counter7'| +//@[47:48) NewLine |\n| + objectName: 'LogicalDisk' +//@[28:53) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:53) StringSyntax +//@[40:53) StringComplete |'LogicalDisk'| +//@[53:54) NewLine |\n| + counterName: 'Disk Transfers/sec' +//@[28:61) ObjectPropertySyntax +//@[28:39) IdentifierSyntax +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:61) StringSyntax +//@[41:61) StringComplete |'Disk Transfers/sec'| +//@[61:62) NewLine |\n| + instanceName: '*' +//@[28:45) ObjectPropertySyntax +//@[28:40) IdentifierSyntax +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringSyntax +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:47) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) IntegerLiteralSyntax +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:315) ArrayItemSyntax +//@[26:315) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter8' +//@[28:47) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:47) StringSyntax +//@[37:47) StringComplete |'counter8'| +//@[47:48) NewLine |\n| + objectName: 'LogicalDisk' +//@[28:53) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:53) StringSyntax +//@[40:53) StringComplete |'LogicalDisk'| +//@[53:54) NewLine |\n| + counterName: 'Disk Write Bytes/sec' +//@[28:63) ObjectPropertySyntax +//@[28:39) IdentifierSyntax +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:63) StringSyntax +//@[41:63) StringComplete |'Disk Write Bytes/sec'| +//@[63:64) NewLine |\n| + instanceName: '*' +//@[28:45) ObjectPropertySyntax +//@[28:40) IdentifierSyntax +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringSyntax +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:47) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) IntegerLiteralSyntax +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:310) ArrayItemSyntax +//@[26:310) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter9' +//@[28:47) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:47) StringSyntax +//@[37:47) StringComplete |'counter9'| +//@[47:48) NewLine |\n| + objectName: 'LogicalDisk' +//@[28:53) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:53) StringSyntax +//@[40:53) StringComplete |'LogicalDisk'| +//@[53:54) NewLine |\n| + counterName: 'Disk Writes/sec' +//@[28:58) ObjectPropertySyntax +//@[28:39) IdentifierSyntax +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:58) StringSyntax +//@[41:58) StringComplete |'Disk Writes/sec'| +//@[58:59) NewLine |\n| + instanceName: '*' +//@[28:45) ObjectPropertySyntax +//@[28:40) IdentifierSyntax +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringSyntax +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:47) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) IntegerLiteralSyntax +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:310) ArrayItemSyntax +//@[26:310) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter10' +//@[28:48) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:48) StringSyntax +//@[37:48) StringComplete |'counter10'| +//@[48:49) NewLine |\n| + objectName: 'LogicalDisk' +//@[28:53) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:53) StringSyntax +//@[40:53) StringComplete |'LogicalDisk'| +//@[53:54) NewLine |\n| + counterName: 'Free Megabytes' +//@[28:57) ObjectPropertySyntax +//@[28:39) IdentifierSyntax +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:57) StringSyntax +//@[41:57) StringComplete |'Free Megabytes'| +//@[57:58) NewLine |\n| + instanceName: '*' +//@[28:45) ObjectPropertySyntax +//@[28:40) IdentifierSyntax +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringSyntax +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:47) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) IntegerLiteralSyntax +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:307) ArrayItemSyntax +//@[26:307) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter11' +//@[28:48) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:48) StringSyntax +//@[37:48) StringComplete |'counter11'| +//@[48:49) NewLine |\n| + objectName: 'Memory' +//@[28:48) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:48) StringSyntax +//@[40:48) StringComplete |'Memory'| +//@[48:49) NewLine |\n| + counterName: 'Available MBytes' +//@[28:59) ObjectPropertySyntax +//@[28:39) IdentifierSyntax +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:59) StringSyntax +//@[41:59) StringComplete |'Available MBytes'| +//@[59:60) NewLine |\n| + instanceName: '*' +//@[28:45) ObjectPropertySyntax +//@[28:40) IdentifierSyntax +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringSyntax +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:47) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) IntegerLiteralSyntax +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:318) ArrayItemSyntax +//@[26:318) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter12' +//@[28:48) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:48) StringSyntax +//@[37:48) StringComplete |'counter12'| +//@[48:49) NewLine |\n| + objectName: 'Network Adapter' +//@[28:57) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:57) StringSyntax +//@[40:57) StringComplete |'Network Adapter'| +//@[57:58) NewLine |\n| + counterName: 'Bytes Received/sec' +//@[28:61) ObjectPropertySyntax +//@[28:39) IdentifierSyntax +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:61) StringSyntax +//@[41:61) StringComplete |'Bytes Received/sec'| +//@[61:62) NewLine |\n| + instanceName: '*' +//@[28:45) ObjectPropertySyntax +//@[28:40) IdentifierSyntax +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringSyntax +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:47) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) IntegerLiteralSyntax +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:314) ArrayItemSyntax +//@[26:314) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter13' +//@[28:48) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:48) StringSyntax +//@[37:48) StringComplete |'counter13'| +//@[48:49) NewLine |\n| + objectName: 'Network Adapter' +//@[28:57) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:57) StringSyntax +//@[40:57) StringComplete |'Network Adapter'| +//@[57:58) NewLine |\n| + counterName: 'Bytes Sent/sec' +//@[28:57) ObjectPropertySyntax +//@[28:39) IdentifierSyntax +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:57) StringSyntax +//@[41:57) StringComplete |'Bytes Sent/sec'| +//@[57:58) NewLine |\n| + instanceName: '*' +//@[28:45) ObjectPropertySyntax +//@[28:40) IdentifierSyntax +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringSyntax +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:47) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) IntegerLiteralSyntax +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:310) ArrayItemSyntax +//@[26:310) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter14' +//@[28:48) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:48) StringSyntax +//@[37:48) StringComplete |'counter14'| +//@[48:49) NewLine |\n| + objectName: 'Processor' +//@[28:51) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:51) StringSyntax +//@[40:51) StringComplete |'Processor'| +//@[51:52) NewLine |\n| + counterName: '% Processor Time' +//@[28:59) ObjectPropertySyntax +//@[28:39) IdentifierSyntax +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:59) StringSyntax +//@[41:59) StringComplete |'% Processor Time'| +//@[59:60) NewLine |\n| + instanceName: '*' +//@[28:45) ObjectPropertySyntax +//@[28:40) IdentifierSyntax +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringSyntax +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:47) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) IntegerLiteralSyntax +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + linuxDiskArray: [ +//@[24:753) ObjectPropertySyntax +//@[24:38) IdentifierSyntax +//@[24:38) Identifier |linuxDiskArray| +//@[38:39) Colon |:| +//@[40:753) ArraySyntax +//@[40:41) LeftSquare |[| +//@[41:42) NewLine |\n| + { +//@[26:112) ArrayItemSyntax +//@[26:112) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + counterName: '% Used Inodes' +//@[28:56) ObjectPropertySyntax +//@[28:39) IdentifierSyntax +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:56) StringSyntax +//@[41:56) StringComplete |'% Used Inodes'| +//@[56:57) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:113) ArrayItemSyntax +//@[26:113) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + counterName: 'Free Megabytes' +//@[28:57) ObjectPropertySyntax +//@[28:39) IdentifierSyntax +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:57) StringSyntax +//@[41:57) StringComplete |'Free Megabytes'| +//@[57:58) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:111) ArrayItemSyntax +//@[26:111) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + counterName: '% Used Space' +//@[28:55) ObjectPropertySyntax +//@[28:39) IdentifierSyntax +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:55) StringSyntax +//@[41:55) StringComplete |'% Used Space'| +//@[55:56) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:117) ArrayItemSyntax +//@[26:117) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + counterName: 'Disk Transfers/sec' +//@[28:61) ObjectPropertySyntax +//@[28:39) IdentifierSyntax +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:61) StringSyntax +//@[41:61) StringComplete |'Disk Transfers/sec'| +//@[61:62) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:113) ArrayItemSyntax +//@[26:113) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + counterName: 'Disk Reads/sec' +//@[28:57) ObjectPropertySyntax +//@[28:39) IdentifierSyntax +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:57) StringSyntax +//@[41:57) StringComplete |'Disk Reads/sec'| +//@[57:58) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:114) ArrayItemSyntax +//@[26:114) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + counterName: 'Disk writes/sec' +//@[28:58) ObjectPropertySyntax +//@[28:39) IdentifierSyntax +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:58) StringSyntax +//@[41:58) StringComplete |'Disk writes/sec'| +//@[58:59) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + linuxDiskObject: { +//@[24:261) ObjectPropertySyntax +//@[24:39) IdentifierSyntax +//@[24:39) Identifier |linuxDiskObject| +//@[39:40) Colon |:| +//@[41:261) ObjectSyntax +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + armResourceName: 'Disk' +//@[26:49) ObjectPropertySyntax +//@[26:41) IdentifierSyntax +//@[26:41) Identifier |armResourceName| +//@[41:42) Colon |:| +//@[43:49) StringSyntax +//@[43:49) StringComplete |'Disk'| +//@[49:50) NewLine |\n| + objectName: 'Logical Disk' +//@[26:52) ObjectPropertySyntax +//@[26:36) IdentifierSyntax +//@[26:36) Identifier |objectName| +//@[36:37) Colon |:| +//@[38:52) StringSyntax +//@[38:52) StringComplete |'Logical Disk'| +//@[52:53) NewLine |\n| + instanceName: '*' +//@[26:43) ObjectPropertySyntax +//@[26:38) IdentifierSyntax +//@[26:38) Identifier |instanceName| +//@[38:39) Colon |:| +//@[40:43) StringSyntax +//@[40:43) StringComplete |'*'| +//@[43:44) NewLine |\n| + intervalSeconds: 10 +//@[26:45) ObjectPropertySyntax +//@[26:41) IdentifierSyntax +//@[26:41) Identifier |intervalSeconds| +//@[41:42) Colon |:| +//@[43:45) IntegerLiteralSyntax +//@[43:45) Integer |10| +//@[45:46) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + linuxMemoryArray: [ +//@[24:192) ObjectPropertySyntax +//@[24:40) IdentifierSyntax +//@[24:40) Identifier |linuxMemoryArray| +//@[40:41) Colon |:| +//@[42:192) ArraySyntax +//@[42:43) LeftSquare |[| +//@[43:44) NewLine |\n| + { +//@[26:122) ArrayItemSyntax +//@[26:122) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + counterName: 'Available MBytes Memory' +//@[28:66) ObjectPropertySyntax +//@[28:39) IdentifierSyntax +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:66) StringSyntax +//@[41:66) StringComplete |'Available MBytes Memory'| +//@[66:67) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + linuxMemoryObject: { +//@[24:259) ObjectPropertySyntax +//@[24:41) IdentifierSyntax +//@[24:41) Identifier |linuxMemoryObject| +//@[41:42) Colon |:| +//@[43:259) ObjectSyntax +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + armResourceName: 'Memory' +//@[26:51) ObjectPropertySyntax +//@[26:41) IdentifierSyntax +//@[26:41) Identifier |armResourceName| +//@[41:42) Colon |:| +//@[43:51) StringSyntax +//@[43:51) StringComplete |'Memory'| +//@[51:52) NewLine |\n| + objectName: 'Memory' +//@[26:46) ObjectPropertySyntax +//@[26:36) IdentifierSyntax +//@[26:36) Identifier |objectName| +//@[36:37) Colon |:| +//@[38:46) StringSyntax +//@[38:46) StringComplete |'Memory'| +//@[46:47) NewLine |\n| + instanceName: '*' +//@[26:43) ObjectPropertySyntax +//@[26:38) IdentifierSyntax +//@[26:38) Identifier |instanceName| +//@[38:39) Colon |:| +//@[40:43) StringSyntax +//@[40:43) StringComplete |'*'| +//@[43:44) NewLine |\n| + intervalSeconds: 10 +//@[26:45) ObjectPropertySyntax +//@[26:41) IdentifierSyntax +//@[26:41) Identifier |intervalSeconds| +//@[41:42) Colon |:| +//@[43:45) IntegerLiteralSyntax +//@[43:45) Integer |10| +//@[45:46) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + linuxNetworkArray: [ +//@[24:313) ObjectPropertySyntax +//@[24:41) IdentifierSyntax +//@[24:41) Identifier |linuxNetworkArray| +//@[41:42) Colon |:| +//@[43:313) ArraySyntax +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + { +//@[26:119) ArrayItemSyntax +//@[26:119) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + counterName: 'Total Bytes Received' +//@[28:63) ObjectPropertySyntax +//@[28:39) IdentifierSyntax +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:63) StringSyntax +//@[41:63) StringComplete |'Total Bytes Received'| +//@[63:64) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:122) ArrayItemSyntax +//@[26:122) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + counterName: 'Total Bytes Transmitted' +//@[28:66) ObjectPropertySyntax +//@[28:39) IdentifierSyntax +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:66) StringSyntax +//@[41:66) StringComplete |'Total Bytes Transmitted'| +//@[66:67) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + linuxNetworkObject: { +//@[24:262) ObjectPropertySyntax +//@[24:42) IdentifierSyntax +//@[24:42) Identifier |linuxNetworkObject| +//@[42:43) Colon |:| +//@[44:262) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + armResourceName: 'Network' +//@[26:52) ObjectPropertySyntax +//@[26:41) IdentifierSyntax +//@[26:41) Identifier |armResourceName| +//@[41:42) Colon |:| +//@[43:52) StringSyntax +//@[43:52) StringComplete |'Network'| +//@[52:53) NewLine |\n| + objectName: 'Network' +//@[26:47) ObjectPropertySyntax +//@[26:36) IdentifierSyntax +//@[26:36) Identifier |objectName| +//@[36:37) Colon |:| +//@[38:47) StringSyntax +//@[38:47) StringComplete |'Network'| +//@[47:48) NewLine |\n| + instanceName: '*' +//@[26:43) ObjectPropertySyntax +//@[26:38) IdentifierSyntax +//@[26:38) Identifier |instanceName| +//@[38:39) Colon |:| +//@[40:43) StringSyntax +//@[40:43) StringComplete |'*'| +//@[43:44) NewLine |\n| + intervalSeconds: 10 +//@[26:45) ObjectPropertySyntax +//@[26:41) IdentifierSyntax +//@[26:41) Identifier |intervalSeconds| +//@[41:42) Colon |:| +//@[43:45) IntegerLiteralSyntax +//@[43:45) Integer |10| +//@[45:46) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + linuxCpuArray: [ +//@[24:182) ObjectPropertySyntax +//@[24:37) IdentifierSyntax +//@[24:37) Identifier |linuxCpuArray| +//@[37:38) Colon |:| +//@[39:182) ArraySyntax +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[26:115) ArrayItemSyntax +//@[26:115) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + counterName: '% Processor Time' +//@[28:59) ObjectPropertySyntax +//@[28:39) IdentifierSyntax +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:59) StringSyntax +//@[41:59) StringComplete |'% Processor Time'| +//@[59:60) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + linuxCpuObject: { +//@[24:262) ObjectPropertySyntax +//@[24:38) IdentifierSyntax +//@[24:38) Identifier |linuxCpuObject| +//@[38:39) Colon |:| +//@[40:262) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + armResourceName: 'Processor' +//@[26:54) ObjectPropertySyntax +//@[26:41) IdentifierSyntax +//@[26:41) Identifier |armResourceName| +//@[41:42) Colon |:| +//@[43:54) StringSyntax +//@[43:54) StringComplete |'Processor'| +//@[54:55) NewLine |\n| + objectName: 'Processor' +//@[26:49) ObjectPropertySyntax +//@[26:36) IdentifierSyntax +//@[26:36) Identifier |objectName| +//@[36:37) Colon |:| +//@[38:49) StringSyntax +//@[38:49) StringComplete |'Processor'| +//@[49:50) NewLine |\n| + instanceName: '*' +//@[26:43) ObjectPropertySyntax +//@[26:38) IdentifierSyntax +//@[26:38) Identifier |instanceName| +//@[38:39) Colon |:| +//@[40:43) StringSyntax +//@[40:43) StringComplete |'*'| +//@[43:44) NewLine |\n| + intervalSeconds: 10 +//@[26:45) ObjectPropertySyntax +//@[26:41) IdentifierSyntax +//@[26:41) Identifier |intervalSeconds| +//@[41:42) Colon |:| +//@[43:45) IntegerLiteralSyntax +//@[43:45) Integer |10| +//@[45:46) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + batch1: { +//@[22:2596) ObjectPropertySyntax +//@[22:28) IdentifierSyntax +//@[22:28) Identifier |batch1| +//@[28:29) Colon |:| +//@[30:2596) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + solutions: [ +//@[24:2540) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |solutions| +//@[33:34) Colon |:| +//@[35:2540) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[26:215) ArrayItemSyntax +//@[26:215) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + name: '[concat(\'Security\', \'(\', parameters(\'workspaceName\'), \')\')]' +//@[28:103) ObjectPropertySyntax +//@[28:32) IdentifierSyntax +//@[28:32) Identifier |name| +//@[32:33) Colon |:| +//@[34:103) StringSyntax +//@[34:103) StringComplete |'[concat(\'Security\', \'(\', parameters(\'workspaceName\'), \')\')]'| +//@[103:104) NewLine |\n| + marketplaceName: 'Security' +//@[28:55) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |marketplaceName| +//@[43:44) Colon |:| +//@[45:55) StringSyntax +//@[45:55) StringComplete |'Security'| +//@[55:56) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:241) ArrayItemSyntax +//@[26:241) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + name: '[concat(\'AgentHealthAssessment\', \'(\', parameters(\'workspaceName\'), \')\')]' +//@[28:116) ObjectPropertySyntax +//@[28:32) IdentifierSyntax +//@[28:32) Identifier |name| +//@[32:33) Colon |:| +//@[34:116) StringSyntax +//@[34:116) StringComplete |'[concat(\'AgentHealthAssessment\', \'(\', parameters(\'workspaceName\'), \')\')]'| +//@[116:117) NewLine |\n| + marketplaceName: 'AgentHealthAssessment' +//@[28:68) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |marketplaceName| +//@[43:44) Colon |:| +//@[45:68) StringSyntax +//@[45:68) StringComplete |'AgentHealthAssessment'| +//@[68:69) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:227) ArrayItemSyntax +//@[26:227) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + name: '[concat(\'ChangeTracking\', \'(\', parameters(\'workspaceName\'), \')\')]' +//@[28:109) ObjectPropertySyntax +//@[28:32) IdentifierSyntax +//@[28:32) Identifier |name| +//@[32:33) Colon |:| +//@[34:109) StringSyntax +//@[34:109) StringComplete |'[concat(\'ChangeTracking\', \'(\', parameters(\'workspaceName\'), \')\')]'| +//@[109:110) NewLine |\n| + marketplaceName: 'ChangeTracking' +//@[28:61) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |marketplaceName| +//@[43:44) Colon |:| +//@[45:61) StringSyntax +//@[45:61) StringComplete |'ChangeTracking'| +//@[61:62) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:213) ArrayItemSyntax +//@[26:213) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + name: '[concat(\'Updates\', \'(\', parameters(\'workspaceName\'), \')\')]' +//@[28:102) ObjectPropertySyntax +//@[28:32) IdentifierSyntax +//@[28:32) Identifier |name| +//@[32:33) Colon |:| +//@[34:102) StringSyntax +//@[34:102) StringComplete |'[concat(\'Updates\', \'(\', parameters(\'workspaceName\'), \')\')]'| +//@[102:103) NewLine |\n| + marketplaceName: 'Updates' +//@[28:54) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |marketplaceName| +//@[43:44) Colon |:| +//@[45:54) StringSyntax +//@[45:54) StringComplete |'Updates'| +//@[54:55) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:225) ArrayItemSyntax +//@[26:225) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + name: '[concat(\'AzureActivity\', \'(\', parameters(\'workspaceName\'), \')\')]' +//@[28:108) ObjectPropertySyntax +//@[28:32) IdentifierSyntax +//@[28:32) Identifier |name| +//@[32:33) Colon |:| +//@[34:108) StringSyntax +//@[34:108) StringComplete |'[concat(\'AzureActivity\', \'(\', parameters(\'workspaceName\'), \')\')]'| +//@[108:109) NewLine |\n| + marketplaceName: 'AzureActivity' +//@[28:60) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |marketplaceName| +//@[43:44) Colon |:| +//@[45:60) StringSyntax +//@[45:60) StringComplete |'AzureActivity'| +//@[60:61) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:229) ArrayItemSyntax +//@[26:229) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + name: '[concat(\'AzureAutomation\', \'(\', parameters(\'workspaceName\'), \')\')]' +//@[28:110) ObjectPropertySyntax +//@[28:32) IdentifierSyntax +//@[28:32) Identifier |name| +//@[32:33) Colon |:| +//@[34:110) StringSyntax +//@[34:110) StringComplete |'[concat(\'AzureAutomation\', \'(\', parameters(\'workspaceName\'), \')\')]'| +//@[110:111) NewLine |\n| + marketplaceName: 'AzureAutomation' +//@[28:62) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |marketplaceName| +//@[43:44) Colon |:| +//@[45:62) StringSyntax +//@[45:62) StringComplete |'AzureAutomation'| +//@[62:63) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:223) ArrayItemSyntax +//@[26:223) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + name: '[concat(\'ADAssessment\', \'(\', parameters(\'workspaceName\'), \')\')]' +//@[28:107) ObjectPropertySyntax +//@[28:32) IdentifierSyntax +//@[28:32) Identifier |name| +//@[32:33) Colon |:| +//@[34:107) StringSyntax +//@[34:107) StringComplete |'[concat(\'ADAssessment\', \'(\', parameters(\'workspaceName\'), \')\')]'| +//@[107:108) NewLine |\n| + marketplaceName: 'ADAssessment' +//@[28:59) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |marketplaceName| +//@[43:44) Colon |:| +//@[45:59) StringSyntax +//@[45:59) StringComplete |'ADAssessment'| +//@[59:60) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:225) ArrayItemSyntax +//@[26:225) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + name: '[concat(\'SQLAssessment\', \'(\', parameters(\'workspaceName\'), \')\')]' +//@[28:108) ObjectPropertySyntax +//@[28:32) IdentifierSyntax +//@[28:32) Identifier |name| +//@[32:33) Colon |:| +//@[34:108) StringSyntax +//@[34:108) StringComplete |'[concat(\'SQLAssessment\', \'(\', parameters(\'workspaceName\'), \')\')]'| +//@[108:109) NewLine |\n| + marketplaceName: 'SQLAssessment' +//@[28:60) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |marketplaceName| +//@[43:44) Colon |:| +//@[45:60) StringSyntax +//@[45:60) StringComplete |'SQLAssessment'| +//@[60:61) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:219) ArrayItemSyntax +//@[26:219) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + name: '[concat(\'VMInsights\', \'(\', parameters(\'workspaceName\'), \')\')]' +//@[28:105) ObjectPropertySyntax +//@[28:32) IdentifierSyntax +//@[28:32) Identifier |name| +//@[32:33) Colon |:| +//@[34:105) StringSyntax +//@[34:105) StringComplete |'[concat(\'VMInsights\', \'(\', parameters(\'workspaceName\'), \')\')]'| +//@[105:106) NewLine |\n| + marketplaceName: 'VMInsights' +//@[28:57) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |marketplaceName| +//@[43:44) Colon |:| +//@[45:57) StringSyntax +//@[45:57) StringComplete |'VMInsights'| +//@[57:58) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:219) ArrayItemSyntax +//@[26:219) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + name: '[concat(\'ServiceMap\', \'(\', parameters(\'workspaceName\'), \')\')]' +//@[28:105) ObjectPropertySyntax +//@[28:32) IdentifierSyntax +//@[28:32) Identifier |name| +//@[32:33) Colon |:| +//@[34:105) StringSyntax +//@[34:105) StringComplete |'[concat(\'ServiceMap\', \'(\', parameters(\'workspaceName\'), \')\')]'| +//@[105:106) NewLine |\n| + marketplaceName: 'ServiceMap' +//@[28:57) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |marketplaceName| +//@[43:44) Colon |:| +//@[45:57) StringSyntax +//@[45:57) StringComplete |'ServiceMap'| +//@[57:58) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:231) ArrayItemSyntax +//@[26:231) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + name: '[concat(\'SecurityInsights\', \'(\', parameters(\'workspaceName\'), \')\')]' +//@[28:111) ObjectPropertySyntax +//@[28:32) IdentifierSyntax +//@[28:32) Identifier |name| +//@[32:33) Colon |:| +//@[34:111) StringSyntax +//@[34:111) StringComplete |'[concat(\'SecurityInsights\', \'(\', parameters(\'workspaceName\'), \')\')]'| +//@[111:112) NewLine |\n| + marketplaceName: 'SecurityInsights' +//@[28:63) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |marketplaceName| +//@[43:44) Colon |:| +//@[45:63) StringSyntax +//@[45:63) StringComplete |'SecurityInsights'| +//@[63:64) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:6356) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:6356) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:453) ArrayItemSyntax +//@[22:453) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + apiVersion: '2015-11-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2015-11-01-preview'| +//@[56:57) NewLine |\n| + type: 'Microsoft.OperationalInsights/workspaces/datasources' +//@[24:84) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:84) StringSyntax +//@[30:84) StringComplete |'Microsoft.OperationalInsights/workspaces/datasources'| +//@[84:85) NewLine |\n| + name: '[concat(parameters(\'workspaceName\'), \'/LinuxPerfCollection\')]' +//@[24:97) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:97) StringSyntax +//@[30:97) StringComplete |'[concat(parameters(\'workspaceName\'), \'/LinuxPerfCollection\')]'| +//@[97:98) NewLine |\n| + kind: 'LinuxPerformanceCollection' +//@[24:58) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |kind| +//@[28:29) Colon |:| +//@[30:58) StringSyntax +//@[30:58) StringComplete |'LinuxPerformanceCollection'| +//@[58:59) NewLine |\n| + properties: { +//@[24:106) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:106) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + state: 'Enabled' +//@[26:42) ObjectPropertySyntax +//@[26:31) IdentifierSyntax +//@[26:31) Identifier |state| +//@[31:32) Colon |:| +//@[33:42) StringSyntax +//@[33:42) StringComplete |'Enabled'| +//@[42:43) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:897) ArrayItemSyntax +//@[22:897) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + apiVersion: '2015-11-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2015-11-01-preview'| +//@[56:57) NewLine |\n| + type: 'Microsoft.OperationalInsights/workspaces/dataSources' +//@[24:84) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:84) StringSyntax +//@[30:84) StringComplete |'Microsoft.OperationalInsights/workspaces/dataSources'| +//@[84:85) NewLine |\n| + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxDiskObject.armResourceName)]' +//@[24:149) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:149) StringSyntax +//@[30:149) StringComplete |'[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxDiskObject.armResourceName)]'| +//@[149:150) NewLine |\n| + kind: 'LinuxPerformanceObject' +//@[24:54) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |kind| +//@[28:29) Colon |:| +//@[30:54) StringSyntax +//@[30:54) StringComplete |'LinuxPerformanceObject'| +//@[54:55) NewLine |\n| + properties: { +//@[24:502) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:502) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + performanceCounters: '[variables(\'vmInsightsPerfCounters\').linuxDiskArray]' +//@[26:103) ObjectPropertySyntax +//@[26:45) IdentifierSyntax +//@[26:45) Identifier |performanceCounters| +//@[45:46) Colon |:| +//@[47:103) StringSyntax +//@[47:103) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxDiskArray]'| +//@[103:104) NewLine |\n| + objectName: '[variables(\'vmInsightsPerfCounters\').linuxDiskObject.objectName]' +//@[26:106) ObjectPropertySyntax +//@[26:36) IdentifierSyntax +//@[26:36) Identifier |objectName| +//@[36:37) Colon |:| +//@[38:106) StringSyntax +//@[38:106) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxDiskObject.objectName]'| +//@[106:107) NewLine |\n| + instanceName: '[variables(\'vmInsightsPerfCounters\').linuxDiskObject.instanceName]' +//@[26:110) ObjectPropertySyntax +//@[26:38) IdentifierSyntax +//@[26:38) Identifier |instanceName| +//@[38:39) Colon |:| +//@[40:110) StringSyntax +//@[40:110) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxDiskObject.instanceName]'| +//@[110:111) NewLine |\n| + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').linuxDiskObject.intervalSeconds]' +//@[26:116) ObjectPropertySyntax +//@[26:41) IdentifierSyntax +//@[26:41) Identifier |intervalSeconds| +//@[41:42) Colon |:| +//@[43:116) StringSyntax +//@[43:116) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxDiskObject.intervalSeconds]'| +//@[116:117) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:907) ArrayItemSyntax +//@[22:907) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + apiVersion: '2015-11-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2015-11-01-preview'| +//@[56:57) NewLine |\n| + type: 'Microsoft.OperationalInsights/workspaces/dataSources' +//@[24:84) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:84) StringSyntax +//@[30:84) StringComplete |'Microsoft.OperationalInsights/workspaces/dataSources'| +//@[84:85) NewLine |\n| + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxMemoryObject.armResourceName)]' +//@[24:151) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:151) StringSyntax +//@[30:151) StringComplete |'[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxMemoryObject.armResourceName)]'| +//@[151:152) NewLine |\n| + kind: 'LinuxPerformanceObject' +//@[24:54) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |kind| +//@[28:29) Colon |:| +//@[30:54) StringSyntax +//@[30:54) StringComplete |'LinuxPerformanceObject'| +//@[54:55) NewLine |\n| + properties: { +//@[24:510) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:510) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + performanceCounters: '[variables(\'vmInsightsPerfCounters\').linuxMemoryArray]' +//@[26:105) ObjectPropertySyntax +//@[26:45) IdentifierSyntax +//@[26:45) Identifier |performanceCounters| +//@[45:46) Colon |:| +//@[47:105) StringSyntax +//@[47:105) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxMemoryArray]'| +//@[105:106) NewLine |\n| + objectName: '[variables(\'vmInsightsPerfCounters\').linuxMemoryObject.objectName]' +//@[26:108) ObjectPropertySyntax +//@[26:36) IdentifierSyntax +//@[26:36) Identifier |objectName| +//@[36:37) Colon |:| +//@[38:108) StringSyntax +//@[38:108) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxMemoryObject.objectName]'| +//@[108:109) NewLine |\n| + instanceName: '[variables(\'vmInsightsPerfCounters\').linuxMemoryObject.instanceName]' +//@[26:112) ObjectPropertySyntax +//@[26:38) IdentifierSyntax +//@[26:38) Identifier |instanceName| +//@[38:39) Colon |:| +//@[40:112) StringSyntax +//@[40:112) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxMemoryObject.instanceName]'| +//@[112:113) NewLine |\n| + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').linuxMemoryObject.intervalSeconds]' +//@[26:118) ObjectPropertySyntax +//@[26:41) IdentifierSyntax +//@[26:41) Identifier |intervalSeconds| +//@[41:42) Colon |:| +//@[43:118) StringSyntax +//@[43:118) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxMemoryObject.intervalSeconds]'| +//@[118:119) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:892) ArrayItemSyntax +//@[22:892) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + apiVersion: '2015-11-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2015-11-01-preview'| +//@[56:57) NewLine |\n| + type: 'Microsoft.OperationalInsights/workspaces/dataSources' +//@[24:84) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:84) StringSyntax +//@[30:84) StringComplete |'Microsoft.OperationalInsights/workspaces/dataSources'| +//@[84:85) NewLine |\n| + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxCpuObject.armResourceName)]' +//@[24:148) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:148) StringSyntax +//@[30:148) StringComplete |'[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxCpuObject.armResourceName)]'| +//@[148:149) NewLine |\n| + kind: 'LinuxPerformanceObject' +//@[24:54) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |kind| +//@[28:29) Colon |:| +//@[30:54) StringSyntax +//@[30:54) StringComplete |'LinuxPerformanceObject'| +//@[54:55) NewLine |\n| + properties: { +//@[24:498) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:498) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + performanceCounters: '[variables(\'vmInsightsPerfCounters\').linuxCpuArray]' +//@[26:102) ObjectPropertySyntax +//@[26:45) IdentifierSyntax +//@[26:45) Identifier |performanceCounters| +//@[45:46) Colon |:| +//@[47:102) StringSyntax +//@[47:102) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxCpuArray]'| +//@[102:103) NewLine |\n| + objectName: '[variables(\'vmInsightsPerfCounters\').linuxCpuObject.objectName]' +//@[26:105) ObjectPropertySyntax +//@[26:36) IdentifierSyntax +//@[26:36) Identifier |objectName| +//@[36:37) Colon |:| +//@[38:105) StringSyntax +//@[38:105) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxCpuObject.objectName]'| +//@[105:106) NewLine |\n| + instanceName: '[variables(\'vmInsightsPerfCounters\').linuxCpuObject.instanceName]' +//@[26:109) ObjectPropertySyntax +//@[26:38) IdentifierSyntax +//@[26:38) Identifier |instanceName| +//@[38:39) Colon |:| +//@[40:109) StringSyntax +//@[40:109) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxCpuObject.instanceName]'| +//@[109:110) NewLine |\n| + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').linuxCpuObject.intervalSeconds]' +//@[26:115) ObjectPropertySyntax +//@[26:41) IdentifierSyntax +//@[26:41) Identifier |intervalSeconds| +//@[41:42) Colon |:| +//@[43:115) StringSyntax +//@[43:115) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxCpuObject.intervalSeconds]'| +//@[115:116) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:912) ArrayItemSyntax +//@[22:912) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + apiVersion: '2015-11-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2015-11-01-preview'| +//@[56:57) NewLine |\n| + type: 'Microsoft.OperationalInsights/workspaces/dataSources' +//@[24:84) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:84) StringSyntax +//@[30:84) StringComplete |'Microsoft.OperationalInsights/workspaces/dataSources'| +//@[84:85) NewLine |\n| + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxNetworkObject.armResourceName)]' +//@[24:152) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:152) StringSyntax +//@[30:152) StringComplete |'[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxNetworkObject.armResourceName)]'| +//@[152:153) NewLine |\n| + kind: 'LinuxPerformanceObject' +//@[24:54) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |kind| +//@[28:29) Colon |:| +//@[30:54) StringSyntax +//@[30:54) StringComplete |'LinuxPerformanceObject'| +//@[54:55) NewLine |\n| + properties: { +//@[24:514) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:514) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + performanceCounters: '[variables(\'vmInsightsPerfCounters\').linuxNetworkArray]' +//@[26:106) ObjectPropertySyntax +//@[26:45) IdentifierSyntax +//@[26:45) Identifier |performanceCounters| +//@[45:46) Colon |:| +//@[47:106) StringSyntax +//@[47:106) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxNetworkArray]'| +//@[106:107) NewLine |\n| + objectName: '[variables(\'vmInsightsPerfCounters\').linuxNetworkObject.objectName]' +//@[26:109) ObjectPropertySyntax +//@[26:36) IdentifierSyntax +//@[26:36) Identifier |objectName| +//@[36:37) Colon |:| +//@[38:109) StringSyntax +//@[38:109) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxNetworkObject.objectName]'| +//@[109:110) NewLine |\n| + instanceName: '[variables(\'vmInsightsPerfCounters\').linuxNetworkObject.instanceName]' +//@[26:113) ObjectPropertySyntax +//@[26:38) IdentifierSyntax +//@[26:38) Identifier |instanceName| +//@[38:39) Colon |:| +//@[40:113) StringSyntax +//@[40:113) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxNetworkObject.instanceName]'| +//@[113:114) NewLine |\n| + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').linuxNetworkObject.intervalSeconds]' +//@[26:119) ObjectPropertySyntax +//@[26:41) IdentifierSyntax +//@[26:41) Identifier |intervalSeconds| +//@[41:42) Colon |:| +//@[43:119) StringSyntax +//@[43:119) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxNetworkObject.intervalSeconds]'| +//@[119:120) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:1147) ArrayItemSyntax +//@[22:1147) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + apiVersion: '2015-11-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2015-11-01-preview'| +//@[56:57) NewLine |\n| + type: 'Microsoft.OperationalInsights/workspaces/dataSources' +//@[24:84) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:84) StringSyntax +//@[30:84) StringComplete |'Microsoft.OperationalInsights/workspaces/dataSources'| +//@[84:85) NewLine |\n| + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].armName)]' +//@[24:151) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:151) StringSyntax +//@[30:151) StringComplete |'[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].armName)]'| +//@[151:152) NewLine |\n| + kind: 'WindowsPerformanceCounter' +//@[24:57) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |kind| +//@[28:29) Colon |:| +//@[30:57) StringSyntax +//@[30:57) StringComplete |'WindowsPerformanceCounter'| +//@[57:58) NewLine |\n| + copy: { +//@[24:199) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |copy| +//@[28:29) Colon |:| +//@[30:199) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + name: 'counterCopy' +//@[26:45) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |name| +//@[30:31) Colon |:| +//@[32:45) StringSyntax +//@[32:45) StringComplete |'counterCopy'| +//@[45:46) NewLine |\n| + count: '[length(variables(\'vmInsightsPerfCounters\').windowsArray)]' +//@[26:95) ObjectPropertySyntax +//@[26:31) IdentifierSyntax +//@[26:31) Identifier |count| +//@[31:32) Colon |:| +//@[33:95) StringSyntax +//@[33:95) StringComplete |'[length(variables(\'vmInsightsPerfCounters\').windowsArray)]'| +//@[95:96) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + properties: { +//@[24:547) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:547) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + objectName: '[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].objectName]' +//@[26:116) ObjectPropertySyntax +//@[26:36) IdentifierSyntax +//@[26:36) Identifier |objectName| +//@[36:37) Colon |:| +//@[38:116) StringSyntax +//@[38:116) StringComplete |'[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].objectName]'| +//@[116:117) NewLine |\n| + instanceName: '[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].instanceName]' +//@[26:120) ObjectPropertySyntax +//@[26:38) IdentifierSyntax +//@[26:38) Identifier |instanceName| +//@[38:39) Colon |:| +//@[40:120) StringSyntax +//@[40:120) StringComplete |'[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].instanceName]'| +//@[120:121) NewLine |\n| + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].intervalSeconds]' +//@[26:126) ObjectPropertySyntax +//@[26:41) IdentifierSyntax +//@[26:41) Identifier |intervalSeconds| +//@[41:42) Colon |:| +//@[43:126) StringSyntax +//@[43:126) StringComplete |'[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].intervalSeconds]'| +//@[126:127) NewLine |\n| + counterName: '[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].counterName]' +//@[26:118) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |counterName| +//@[37:38) Colon |:| +//@[39:118) StringSyntax +//@[39:118) StringComplete |'[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].counterName]'| +//@[118:119) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:1087) ArrayItemSyntax +//@[22:1087) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + apiVersion: '2015-11-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2015-11-01-preview'| +//@[56:57) NewLine |\n| + type: 'Microsoft.OperationsManagement/solutions' +//@[24:72) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:72) StringSyntax +//@[30:72) StringComplete |'Microsoft.OperationsManagement/solutions'| +//@[72:73) NewLine |\n| + name: '[concat(variables(\'batch1\').solutions[copyIndex()].Name)]' +//@[24:91) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:91) StringSyntax +//@[30:91) StringComplete |'[concat(variables(\'batch1\').solutions[copyIndex()].Name)]'| +//@[91:92) NewLine |\n| + location: '[parameters(\'workspaceRegion\')]' +//@[24:69) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:69) StringSyntax +//@[34:69) StringComplete |'[parameters(\'workspaceRegion\')]'| +//@[69:70) NewLine |\n| + copy: { +//@[24:181) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |copy| +//@[28:29) Colon |:| +//@[30:181) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + name: 'solutionCopy' +//@[26:46) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |name| +//@[30:31) Colon |:| +//@[32:46) StringSyntax +//@[32:46) StringComplete |'solutionCopy'| +//@[46:47) NewLine |\n| + count: '[length(variables(\'batch1\').solutions)]' +//@[26:76) ObjectPropertySyntax +//@[26:31) IdentifierSyntax +//@[26:31) Identifier |count| +//@[31:32) Colon |:| +//@[33:76) StringSyntax +//@[33:76) StringComplete |'[length(variables(\'batch1\').solutions)]'| +//@[76:77) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + properties: { +//@[24:203) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:203) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceResourceId: '[resourceId(\'Microsoft.OperationalInsights/workspaces/\', parameters(\'workspaceName\'))]' +//@[26:139) ObjectPropertySyntax +//@[26:45) IdentifierSyntax +//@[26:45) Identifier |workspaceResourceId| +//@[45:46) Colon |:| +//@[47:139) StringSyntax +//@[47:139) StringComplete |'[resourceId(\'Microsoft.OperationalInsights/workspaces/\', parameters(\'workspaceName\'))]'| +//@[139:140) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + plan: { +//@[24:361) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |plan| +//@[28:29) Colon |:| +//@[30:361) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + name: '[variables(\'batch1\').solutions[copyIndex()].name]' +//@[26:85) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |name| +//@[30:31) Colon |:| +//@[32:85) StringSyntax +//@[32:85) StringComplete |'[variables(\'batch1\').solutions[copyIndex()].name]'| +//@[85:86) NewLine |\n| + product: '[concat(\'OMSGallery/\', variables(\'batch1\').solutions[copyIndex()].marketplaceName)]' +//@[26:124) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |product| +//@[33:34) Colon |:| +//@[35:124) StringSyntax +//@[35:124) StringComplete |'[concat(\'OMSGallery/\', variables(\'batch1\').solutions[copyIndex()].marketplaceName)]'| +//@[124:125) NewLine |\n| + promotionCode: '' +//@[26:43) ObjectPropertySyntax +//@[26:39) IdentifierSyntax +//@[26:39) Identifier |promotionCode| +//@[39:40) Colon |:| +//@[41:43) StringSyntax +//@[41:43) StringComplete |''| +//@[43:44) NewLine |\n| + publisher: 'Microsoft' +//@[26:48) ObjectPropertySyntax +//@[26:35) IdentifierSyntax +//@[26:35) Identifier |publisher| +//@[35:36) Colon |:| +//@[37:48) StringSyntax +//@[37:48) StringComplete |'Microsoft'| +//@[48:49) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-LA-Config' +//@[6:30) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:30) StringSyntax +//@[12:30) StringComplete |'Deploy-LA-Config'| +//@[30:31) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:8751) ArrayItemSyntax +//@[4:8751) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:8704) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:8704) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys Log Analytics and Automation account to the subscription where the policy is assigned.' +//@[8:117) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:117) StringSyntax +//@[21:117) StringComplete |'Deploys Log Analytics and Automation account to the subscription where the policy is assigned.'| +//@[117:118) NewLine |\n| + DisplayName: 'Deploy the Log Analytics in the subscription' +//@[8:67) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:67) StringSyntax +//@[21:67) StringComplete |'Deploy the Log Analytics in the subscription'| +//@[67:68) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1728) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1728) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + workspaceName: { +//@[10:216) ObjectPropertySyntax +//@[10:23) IdentifierSyntax +//@[10:23) Identifier |workspaceName| +//@[23:24) Colon |:| +//@[25:216) ObjectSyntax +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:150) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:150) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'workspaceName' +//@[14:42) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:42) StringSyntax +//@[27:42) StringComplete |'workspaceName'| +//@[42:43) NewLine |\n| + description: 'Provide name for log analytics workspace' +//@[14:69) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:69) StringSyntax +//@[27:69) StringComplete |'Provide name for log analytics workspace'| +//@[69:70) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + automationAccountName: { +//@[10:227) ObjectPropertySyntax +//@[10:31) IdentifierSyntax +//@[10:31) Identifier |automationAccountName| +//@[31:32) Colon |:| +//@[33:227) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:153) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:153) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'automationAccountName' +//@[14:50) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:50) StringSyntax +//@[27:50) StringComplete |'automationAccountName'| +//@[50:51) NewLine |\n| + description: 'Provide name for automation account' +//@[14:64) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:64) StringSyntax +//@[27:64) StringComplete |'Provide name for automation account'| +//@[64:65) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + workspaceRegion: { +//@[10:217) ObjectPropertySyntax +//@[10:25) IdentifierSyntax +//@[10:25) Identifier |workspaceRegion| +//@[25:26) Colon |:| +//@[27:217) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:149) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:149) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'workspaceRegion' +//@[14:44) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:44) StringSyntax +//@[27:44) StringComplete |'workspaceRegion'| +//@[44:45) NewLine |\n| + description: 'Select Azure region for Log Analytics' +//@[14:66) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:66) StringSyntax +//@[27:66) StringComplete |'Select Azure region for Log Analytics'| +//@[66:67) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + automationRegion: { +//@[10:224) ObjectPropertySyntax +//@[10:26) IdentifierSyntax +//@[10:26) Identifier |automationRegion| +//@[26:27) Colon |:| +//@[28:224) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:155) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:155) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'automationRegion' +//@[14:45) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:45) StringSyntax +//@[27:45) StringComplete |'automationRegion'| +//@[45:46) NewLine |\n| + description: 'Select Azure region for Automation account' +//@[14:71) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:71) StringSyntax +//@[27:71) StringComplete |'Select Azure region for Automation account'| +//@[71:72) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + retentionInDays: { +//@[10:257) ObjectPropertySyntax +//@[10:25) IdentifierSyntax +//@[10:25) Identifier |retentionInDays| +//@[25:26) Colon |:| +//@[27:257) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: '30' +//@[12:30) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:30) StringSyntax +//@[26:30) StringComplete |'30'| +//@[30:31) NewLine |\n| + metadata: { +//@[12:158) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:158) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Data retention' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Data retention'| +//@[43:44) NewLine |\n| + description: 'Select data retention (days) for Log Analytics.' +//@[14:76) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:76) StringSyntax +//@[27:76) StringComplete |'Select data retention (days) for Log Analytics.'| +//@[76:77) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + rgName: { +//@[10:194) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |rgName| +//@[16:17) Colon |:| +//@[18:194) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:135) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:135) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'rgName' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'rgName'| +//@[35:36) NewLine |\n| + description: 'Provide name for resource group.' +//@[14:61) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:61) StringSyntax +//@[27:61) StringComplete |'Provide name for resource group.'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:6647) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:6647) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:184) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:184) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:156) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:156) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:121) ArrayItemSyntax +//@[14:121) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Resources/subscriptions' +//@[16:59) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringSyntax +//@[24:59) StringComplete |'Microsoft.Resources/subscriptions'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:6430) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:6430) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:6353) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:6353) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.OperationalInsights/workspaces' +//@[14:62) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:62) StringSyntax +//@[20:62) StringComplete |'Microsoft.OperationalInsights/workspaces'| +//@[62:63) NewLine |\n| + deploymentScope: 'Subscription' +//@[14:45) ObjectPropertySyntax +//@[14:29) IdentifierSyntax +//@[14:29) Identifier |deploymentScope| +//@[29:30) Colon |:| +//@[31:45) StringSyntax +//@[31:45) StringComplete |'Subscription'| +//@[45:46) NewLine |\n| + existenceScope: 'Subscription' +//@[14:44) ObjectPropertySyntax +//@[14:28) IdentifierSyntax +//@[14:28) Identifier |existenceScope| +//@[28:29) Colon |:| +//@[30:44) StringSyntax +//@[30:44) StringComplete |'Subscription'| +//@[44:45) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + existenceCondition: { +//@[14:228) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:228) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:176) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:176) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:133) ArrayItemSyntax +//@[18:133) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'name' +//@[20:33) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:33) StringSyntax +//@[27:33) StringComplete |'name'| +//@[33:34) NewLine |\n| + like: '[parameters(\'workspaceName\')]' +//@[20:59) ObjectPropertySyntax +//@[20:24) IdentifierSyntax +//@[20:24) Identifier |like| +//@[24:25) Colon |:| +//@[26:59) StringSyntax +//@[26:59) StringComplete |'[parameters(\'workspaceName\')]'| +//@[59:60) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + deployment: { +//@[14:5670) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:5670) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + location: 'northeurope' +//@[16:39) ObjectPropertySyntax +//@[16:24) IdentifierSyntax +//@[16:24) Identifier |location| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'northeurope'| +//@[39:40) NewLine |\n| + properties: { +//@[16:5586) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:5586) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:799) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:799) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + rgName: { +//@[20:107) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |rgName| +//@[26:27) Colon |:| +//@[28:107) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'rgName\')]' +//@[22:55) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:55) StringSyntax +//@[29:55) StringComplete |'[parameters(\'rgName\')]'| +//@[55:56) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + retentionInDays: { +//@[20:125) ObjectPropertySyntax +//@[20:35) IdentifierSyntax +//@[20:35) Identifier |retentionInDays| +//@[35:36) Colon |:| +//@[37:125) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + value: '[parameters(\'retentionInDays\')]' +//@[22:64) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:64) StringSyntax +//@[29:64) StringComplete |'[parameters(\'retentionInDays\')]'| +//@[64:65) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + workspaceName: { +//@[20:121) ObjectPropertySyntax +//@[20:33) IdentifierSyntax +//@[20:33) Identifier |workspaceName| +//@[33:34) Colon |:| +//@[35:121) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + value: '[parameters(\'workspaceName\')]' +//@[22:62) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:62) StringSyntax +//@[29:62) StringComplete |'[parameters(\'workspaceName\')]'| +//@[62:63) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + workspaceRegion: { +//@[20:125) ObjectPropertySyntax +//@[20:35) IdentifierSyntax +//@[20:35) Identifier |workspaceRegion| +//@[35:36) Colon |:| +//@[37:125) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + value: '[parameters(\'workspaceRegion\')]' +//@[22:64) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:64) StringSyntax +//@[29:64) StringComplete |'[parameters(\'workspaceRegion\')]'| +//@[64:65) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + automationAccountName: { +//@[20:137) ObjectPropertySyntax +//@[20:41) IdentifierSyntax +//@[20:41) Identifier |automationAccountName| +//@[41:42) Colon |:| +//@[43:137) ObjectSyntax +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + value: '[parameters(\'automationAccountName\')]' +//@[22:70) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:70) StringSyntax +//@[29:70) StringComplete |'[parameters(\'automationAccountName\')]'| +//@[70:71) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + automationRegion: { +//@[20:127) ObjectPropertySyntax +//@[20:36) IdentifierSyntax +//@[20:36) Identifier |automationRegion| +//@[36:37) Colon |:| +//@[38:127) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + value: '[parameters(\'automationRegion\')]' +//@[22:65) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:65) StringSyntax +//@[29:65) StringComplete |'[parameters(\'automationRegion\')]'| +//@[65:66) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:4700) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:4700) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' +//@[20:122) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:122) StringSyntax +//@[31:122) StringComplete |'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json'| +//@[122:123) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:675) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:675) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + rgName: { +//@[22:94) ObjectPropertySyntax +//@[22:28) IdentifierSyntax +//@[22:28) Identifier |rgName| +//@[28:29) Colon |:| +//@[30:94) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + workspaceName: { +//@[22:101) ObjectPropertySyntax +//@[22:35) IdentifierSyntax +//@[22:35) Identifier |workspaceName| +//@[35:36) Colon |:| +//@[37:101) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + workspaceRegion: { +//@[22:103) ObjectPropertySyntax +//@[22:37) IdentifierSyntax +//@[22:37) Identifier |workspaceRegion| +//@[37:38) Colon |:| +//@[39:103) ObjectSyntax +//@[39:40) LeftBrace |{| +//@[40:41) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + automationAccountName: { +//@[22:109) ObjectPropertySyntax +//@[22:43) IdentifierSyntax +//@[22:43) Identifier |automationAccountName| +//@[43:44) Colon |:| +//@[45:109) ObjectSyntax +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + automationRegion: { +//@[22:104) ObjectPropertySyntax +//@[22:38) IdentifierSyntax +//@[22:38) Identifier |automationRegion| +//@[38:39) Colon |:| +//@[40:104) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + retentionInDays: { +//@[22:103) ObjectPropertySyntax +//@[22:37) IdentifierSyntax +//@[22:37) Identifier |retentionInDays| +//@[37:38) Colon |:| +//@[39:103) ObjectSyntax +//@[39:40) LeftBrace |{| +//@[40:41) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:3739) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:3739) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:319) ArrayItemSyntax +//@[22:319) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/resourceGroups' +//@[24:66) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:66) StringSyntax +//@[30:66) StringComplete |'Microsoft.Resources/resourceGroups'| +//@[66:67) NewLine |\n| + apiVersion: '2018-05-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2018-05-01'| +//@[48:49) NewLine |\n| + name: '[parameters(\'rgName\')]' +//@[24:56) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:56) StringSyntax +//@[30:56) StringComplete |'[parameters(\'rgName\')]'| +//@[56:57) NewLine |\n| + location: '[deployment().location]' +//@[24:59) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:59) StringSyntax +//@[34:59) StringComplete |'[deployment().location]'| +//@[59:60) NewLine |\n| + properties: {} +//@[24:38) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:38) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) RightBrace |}| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:3364) ArrayItemSyntax +//@[22:3364) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:63) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringSyntax +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2018-05-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2018-05-01'| +//@[48:49) NewLine |\n| + name: 'log-analytics' +//@[24:45) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:45) StringSyntax +//@[30:45) StringComplete |'log-analytics'| +//@[45:46) NewLine |\n| + resourceGroup: '[parameters(\'rgName\')]' +//@[24:65) ObjectPropertySyntax +//@[24:37) IdentifierSyntax +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:65) StringSyntax +//@[39:65) StringComplete |'[parameters(\'rgName\')]'| +//@[65:66) NewLine |\n| + dependsOn: [ +//@[24:168) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:168) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' +//@[26:105) ArrayItemSyntax +//@[26:105) StringSyntax +//@[26:105) StringComplete |'[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]'| +//@[105:106) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:2922) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:2922) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:45) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringSyntax +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:2812) ObjectPropertySyntax +//@[26:34) IdentifierSyntax +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:2812) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json' +//@[28:118) ObjectPropertySyntax +//@[28:37) StringSyntax +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:118) StringSyntax +//@[39:118) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json'| +//@[118:119) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:53) ObjectPropertySyntax +//@[28:42) IdentifierSyntax +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringSyntax +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:42) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:42) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:41) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:41) ObjectSyntax +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:2448) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:2448) ArraySyntax +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:632) ArrayItemSyntax +//@[30:632) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + apiversion: '2015-10-31' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiversion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2015-10-31'| +//@[56:57) NewLine |\n| + location: '[parameters(\'AutomationRegion\')]' +//@[32:78) ObjectPropertySyntax +//@[32:40) IdentifierSyntax +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:78) StringSyntax +//@[42:78) StringComplete |'[parameters(\'AutomationRegion\')]'| +//@[78:79) NewLine |\n| + name: '[parameters(\'AutomationAccountName\')]' +//@[32:79) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:79) StringSyntax +//@[38:79) StringComplete |'[parameters(\'AutomationAccountName\')]'| +//@[79:80) NewLine |\n| + type: 'Microsoft.Automation/automationAccounts' +//@[32:79) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:79) StringSyntax +//@[38:79) StringComplete |'Microsoft.Automation/automationAccounts'| +//@[79:80) NewLine |\n| + comments: 'Automation account for ' +//@[32:67) ObjectPropertySyntax +//@[32:40) IdentifierSyntax +//@[32:40) Identifier |comments| +//@[40:41) Colon |:| +//@[42:67) StringSyntax +//@[42:67) StringComplete |'Automation account for '| +//@[67:68) NewLine |\n| + properties: { +//@[32:204) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:204) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + sku: { +//@[34:124) ObjectPropertySyntax +//@[34:37) IdentifierSyntax +//@[34:37) Identifier |sku| +//@[37:38) Colon |:| +//@[39:124) ObjectSyntax +//@[39:40) LeftBrace |{| +//@[40:41) NewLine |\n| + name: 'OMS' +//@[36:47) ObjectPropertySyntax +//@[36:40) IdentifierSyntax +//@[36:40) Identifier |name| +//@[40:41) Colon |:| +//@[42:47) StringSyntax +//@[42:47) StringComplete |'OMS'| +//@[47:48) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:1744) ArrayItemSyntax +//@[30:1744) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + apiVersion: '2017-03-15-preview' +//@[32:64) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:64) StringSyntax +//@[44:64) StringComplete |'2017-03-15-preview'| +//@[64:65) NewLine |\n| + location: '[parameters(\'workspaceRegion\')]' +//@[32:77) ObjectPropertySyntax +//@[32:40) IdentifierSyntax +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:77) StringSyntax +//@[42:77) StringComplete |'[parameters(\'workspaceRegion\')]'| +//@[77:78) NewLine |\n| + name: '[parameters(\'workspaceName\')]' +//@[32:71) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:71) StringSyntax +//@[38:71) StringComplete |'[parameters(\'workspaceName\')]'| +//@[71:72) NewLine |\n| + type: 'Microsoft.OperationalInsights/workspaces' +//@[32:80) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:80) StringSyntax +//@[38:80) StringComplete |'Microsoft.OperationalInsights/workspaces'| +//@[80:81) NewLine |\n| + properties: { +//@[32:384) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:384) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + sku: { +//@[34:128) ObjectPropertySyntax +//@[34:37) IdentifierSyntax +//@[34:37) Identifier |sku| +//@[37:38) Colon |:| +//@[39:128) ObjectSyntax +//@[39:40) LeftBrace |{| +//@[40:41) NewLine |\n| + name: 'pernode' +//@[36:51) ObjectPropertySyntax +//@[36:40) IdentifierSyntax +//@[36:40) Identifier |name| +//@[40:41) Colon |:| +//@[42:51) StringSyntax +//@[42:51) StringComplete |'pernode'| +//@[51:52) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + enableLogAccessUsingOnlyResourcePermissions: true +//@[34:83) ObjectPropertySyntax +//@[34:77) IdentifierSyntax +//@[34:77) Identifier |enableLogAccessUsingOnlyResourcePermissions| +//@[77:78) Colon |:| +//@[79:83) BooleanLiteralSyntax +//@[79:83) TrueKeyword |true| +//@[83:84) NewLine |\n| + retentionInDays: '[int(parameters(\'retentionInDays\'))]' +//@[34:91) ObjectPropertySyntax +//@[34:49) IdentifierSyntax +//@[34:49) Identifier |retentionInDays| +//@[49:50) Colon |:| +//@[51:91) StringSyntax +//@[51:91) StringComplete |'[int(parameters(\'retentionInDays\'))]'| +//@[91:92) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[32:999) ObjectPropertySyntax +//@[32:41) IdentifierSyntax +//@[32:41) Identifier |resources| +//@[41:42) Colon |:| +//@[43:999) ArraySyntax +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + { +//@[34:920) ArrayItemSyntax +//@[34:920) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + name: 'Automation' +//@[36:54) ObjectPropertySyntax +//@[36:40) IdentifierSyntax +//@[36:40) Identifier |name| +//@[40:41) Colon |:| +//@[42:54) StringSyntax +//@[42:54) StringComplete |'Automation'| +//@[54:55) NewLine |\n| + type: 'linkedServices' +//@[36:58) ObjectPropertySyntax +//@[36:40) IdentifierSyntax +//@[36:40) Identifier |type| +//@[40:41) Colon |:| +//@[42:58) StringSyntax +//@[42:58) StringComplete |'linkedServices'| +//@[58:59) NewLine |\n| + apiVersion: '2015-11-01-preview' +//@[36:68) ObjectPropertySyntax +//@[36:46) IdentifierSyntax +//@[36:46) Identifier |apiVersion| +//@[46:47) Colon |:| +//@[48:68) StringSyntax +//@[48:68) StringComplete |'2015-11-01-preview'| +//@[68:69) NewLine |\n| + dependsOn: [ +//@[36:355) ObjectPropertySyntax +//@[36:45) IdentifierSyntax +//@[36:45) Identifier |dependsOn| +//@[45:46) Colon |:| +//@[47:355) ArraySyntax +//@[47:48) LeftSquare |[| +//@[48:49) NewLine |\n| + '[resourceId(\'Microsoft.OperationalInsights/workspaces/\', parameters(\'workspaceName\'))]' +//@[38:130) ArrayItemSyntax +//@[38:130) StringSyntax +//@[38:130) StringComplete |'[resourceId(\'Microsoft.OperationalInsights/workspaces/\', parameters(\'workspaceName\'))]'| +//@[130:131) NewLine |\n| + '[resourceId(\'Microsoft.Automation/automationAccounts/\', parameters(\'AutomationAccountName\'))]' +//@[38:137) ArrayItemSyntax +//@[38:137) StringSyntax +//@[38:137) StringComplete |'[resourceId(\'Microsoft.Automation/automationAccounts/\', parameters(\'AutomationAccountName\'))]'| +//@[137:138) NewLine |\n| + ] +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[36:309) ObjectPropertySyntax +//@[36:46) IdentifierSyntax +//@[36:46) Identifier |properties| +//@[46:47) Colon |:| +//@[48:309) ObjectSyntax +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + resourceId: '[concat(subscription().id, \'/resourceGroups/\', parameters(\'rgName\'), \'/providers/Microsoft.Automation/automationAccounts/\', parameters(\'AutomationAccountName\'))]' +//@[38:221) ObjectPropertySyntax +//@[38:48) IdentifierSyntax +//@[38:48) Identifier |resourceId| +//@[48:49) Colon |:| +//@[50:221) StringSyntax +//@[50:221) StringComplete |'[concat(subscription().id, \'/resourceGroups/\', parameters(\'rgName\'), \'/providers/Microsoft.Automation/automationAccounts/\', parameters(\'AutomationAccountName\'))]'| +//@[221:222) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + ] +//@[32:33) RightSquare |]| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + outputs: {} +//@[28:39) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |outputs| +//@[35:36) Colon |:| +//@[37:39) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Log-Analytics' +//@[6:34) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:34) StringSyntax +//@[12:34) StringComplete |'Deploy-Log-Analytics'| +//@[34:35) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5676) ArrayItemSyntax +//@[4:5676) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:5618) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:5618) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Logic Apps integration service environment to stream to a Log Analytics workspace when any Logic Apps integration service environment which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:330) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:330) StringSyntax +//@[21:330) StringComplete |'Deploys the diagnostic settings for Logic Apps integration service environment to stream to a Log Analytics workspace when any Logic Apps integration service environment which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[330:331) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Logic Apps integration service environment to Log Analytics workspace' +//@[8:123) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:123) StringSyntax +//@[21:123) StringComplete |'Deploy Diagnostic Settings for Logic Apps integration service environment to Log Analytics workspace'| +//@[123:124) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1463) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1463) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:3557) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:3557) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:111) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:111) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Logic/integrationAccounts' +//@[12:57) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:57) StringSyntax +//@[20:57) StringComplete |'Microsoft.Logic/integrationAccounts'| +//@[57:58) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:3413) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:3413) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:3336) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:3336) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:429) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:429) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:377) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:377) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:2512) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:2512) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:2468) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:2468) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:1760) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:1760) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:554) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:554) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:931) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:931) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:876) ArrayItemSyntax +//@[22:876) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Logic/integrationAccounts/providers/diagnosticSettings' +//@[24:96) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:96) StringSyntax +//@[30:96) StringComplete |'Microsoft.Logic/integrationAccounts/providers/diagnosticSettings'| +//@[96:97) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:441) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:441) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [] +//@[26:37) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + logs: [ +//@[26:267) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:267) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:205) ArrayItemSyntax +//@[28:205) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'IntegrationAccountTrackingEvents' +//@[30:74) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:74) StringSyntax +//@[40:74) StringComplete |'IntegrationAccountTrackingEvents'| +//@[74:75) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:621) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:621) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-LogicAppsISE' +//@[6:45) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:45) StringSyntax +//@[12:45) StringComplete |'Deploy-Diagnostics-LogicAppsISE'| +//@[45:46) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:6782) ArrayItemSyntax +//@[4:6782) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:6725) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:6725) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Logic Apps Workflow runtimeto stream to a Log Analytics workspace when any Logic Apps Workflow runtime which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:299) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:299) StringSyntax +//@[21:299) StringComplete |'Deploys the diagnostic settings for Logic Apps Workflow runtimeto stream to a Log Analytics workspace when any Logic Apps Workflow runtime which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[299:300) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Logic Apps Workflow runtime to Log Analytics workspace' +//@[8:108) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:108) StringSyntax +//@[21:108) StringComplete |'Deploy Diagnostic Settings for Logic Apps Workflow runtime to Log Analytics workspace'| +//@[108:109) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4333) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4333) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:101) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:101) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Logic/workflows' +//@[12:47) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:47) StringSyntax +//@[20:47) StringComplete |'Microsoft.Logic/workflows'| +//@[47:48) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4199) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4199) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4122) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4122) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3140) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3140) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3096) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3096) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2264) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2264) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1332) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1332) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1277) ArrayItemSyntax +//@[22:1277) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Logic/workflows/providers/diagnosticSettings' +//@[24:86) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:86) StringSyntax +//@[30:86) StringComplete |'Microsoft.Logic/workflows/providers/diagnosticSettings'| +//@[86:87) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:852) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:852) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:250) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:250) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:188) ArrayItemSyntax +//@[28:188) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'WorkflowRuntime' +//@[30:57) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:57) StringSyntax +//@[40:57) StringComplete |'WorkflowRuntime'| +//@[57:58) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-LogicAppsWF' +//@[6:44) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:44) StringSyntax +//@[12:44) StringComplete |'Deploy-Diagnostics-LogicAppsWF'| +//@[44:45) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:6916) ArrayItemSyntax +//@[4:6916) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:6863) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:6863) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for MariaDB to stream to a Log Analytics workspace when any MariaDB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:261) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:261) StringSyntax +//@[21:261) StringComplete |'Deploys the diagnostic settings for MariaDB to stream to a Log Analytics workspace when any MariaDB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[261:262) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for MariaDB to Log Analytics workspace' +//@[8:88) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:88) StringSyntax +//@[21:88) StringComplete |'Deploy Diagnostic Settings for MariaDB to Log Analytics workspace'| +//@[88:89) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4529) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4529) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:106) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:106) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.DBforMariaDB/servers' +//@[12:52) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:52) StringSyntax +//@[20:52) StringComplete |'Microsoft.DBforMariaDB/servers'| +//@[52:53) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4390) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4390) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4313) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4313) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3331) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3331) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3287) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3287) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2455) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2455) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1523) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1523) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1468) ArrayItemSyntax +//@[22:1468) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.DBforMariaDB/servers/providers/diagnosticSettings' +//@[24:91) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:91) StringSyntax +//@[30:91) StringComplete |'Microsoft.DBforMariaDB/servers/providers/diagnosticSettings'| +//@[91:92) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:1038) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1038) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:436) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:436) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:186) ArrayItemSyntax +//@[28:186) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'MySqlSlowLogs' +//@[30:55) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:55) StringSyntax +//@[40:55) StringComplete |'MySqlSlowLogs'| +//@[55:56) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:187) ArrayItemSyntax +//@[28:187) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'MySqlAuditLogs' +//@[30:56) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:56) StringSyntax +//@[40:56) StringComplete |'MySqlAuditLogs'| +//@[56:57) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-MariaDB' +//@[6:40) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:40) StringSyntax +//@[12:40) StringComplete |'Deploy-Diagnostics-MariaDB'| +//@[40:41) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:1191) ArrayItemSyntax +//@[4:1191) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:1137) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:1137) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies the creation of Maria DB accounts with exposed public endpoints' +//@[8:105) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:105) StringSyntax +//@[21:105) StringComplete |'This policy denies the creation of Maria DB accounts with exposed public endpoints'| +//@[105:106) NewLine |\n| + DisplayName: 'Public network access should be disabled for MariaDB' +//@[8:75) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:75) StringSyntax +//@[21:75) StringComplete |'Public network access should be disabled for MariaDB'| +//@[75:76) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:383) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:383) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:351) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:351) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:110) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:110) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:82) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:82) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'SQL' +//@[10:25) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:25) StringSyntax +//@[20:25) StringComplete |'SQL'| +//@[25:26) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:436) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:436) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:327) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:327) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:299) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:299) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:118) ArrayItemSyntax +//@[14:118) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.DBforMariaDB/servers' +//@[16:56) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:56) StringSyntax +//@[24:56) StringComplete |'Microsoft.DBforMariaDB/servers'| +//@[56:57) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:145) ArrayItemSyntax +//@[14:145) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.DBforMariaDB/servers/publicNetworkAccess' +//@[16:75) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:75) StringSyntax +//@[23:75) StringComplete |'Microsoft.DBforMariaDB/servers/publicNetworkAccess'| +//@[75:76) NewLine |\n| + notequals: 'Disabled' +//@[16:37) ObjectPropertySyntax +//@[16:25) IdentifierSyntax +//@[16:25) Identifier |notequals| +//@[25:26) Colon |:| +//@[27:37) StringSyntax +//@[27:37) StringComplete |'Disabled'| +//@[37:38) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:76) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:76) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-PublicEndpoint-MariaDB' +//@[6:41) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:41) StringSyntax +//@[12:41) StringComplete |'Deny-PublicEndpoint-MariaDB'| +//@[41:42) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:8753) ArrayItemSyntax +//@[4:8753) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:8696) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:8696) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Machine Learning workspace to stream to a Log Analytics workspace when any Machine Learning workspace which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:298) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:298) StringSyntax +//@[21:298) StringComplete |'Deploys the diagnostic settings for Machine Learning workspace to stream to a Log Analytics workspace when any Machine Learning workspace which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[298:299) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Machine Learning workspace to Log Analytics workspace' +//@[8:107) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:107) StringSyntax +//@[21:107) StringComplete |'Deploy Diagnostic Settings for Machine Learning workspace to Log Analytics workspace'| +//@[107:108) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:6306) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:6306) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:120) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:120) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.MachineLearningServices/workspaces' +//@[12:66) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:66) StringSyntax +//@[20:66) StringComplete |'Microsoft.MachineLearningServices/workspaces'| +//@[66:67) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:6153) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:6153) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:6076) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:6076) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:5094) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:5094) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:5050) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:5050) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:4218) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:4218) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:3286) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:3286) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:3231) ArrayItemSyntax +//@[22:3231) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.MachineLearningServices/workspaces/providers/diagnosticSettings' +//@[24:105) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:105) StringSyntax +//@[30:105) StringComplete |'Microsoft.MachineLearningServices/workspaces/providers/diagnosticSettings'| +//@[105:106) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:2787) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:2787) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:1602) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:1602) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:393) ArrayItemSyntax +//@[28:393) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Run' +//@[30:45) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:45) StringSyntax +//@[40:45) StringComplete |'Run'| +//@[45:46) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:348) ArrayItemSyntax +//@[28:348) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Model' +//@[30:47) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:47) StringSyntax +//@[40:47) StringComplete |'Model'| +//@[47:48) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:166) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:166) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: true +//@[32:45) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:45) BooleanLiteralSyntax +//@[41:45) TrueKeyword |true| +//@[45:46) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:395) ArrayItemSyntax +//@[28:395) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Quota' +//@[30:47) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:47) StringSyntax +//@[40:47) StringComplete |'Quota'| +//@[47:48) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:398) ArrayItemSyntax +//@[28:398) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Resource' +//@[30:50) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:50) StringSyntax +//@[40:50) StringComplete |'Resource'| +//@[50:51) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:1048) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:1048) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:195) ArrayItemSyntax +//@[28:195) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AmlComputeClusterEvent' +//@[30:64) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:64) StringSyntax +//@[40:64) StringComplete |'AmlComputeClusterEvent'| +//@[64:65) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:199) ArrayItemSyntax +//@[28:199) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AmlComputeClusterNodeEvent' +//@[30:68) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:68) StringSyntax +//@[40:68) StringComplete |'AmlComputeClusterNodeEvent'| +//@[68:69) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:191) ArrayItemSyntax +//@[28:191) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AmlComputeJobEvent' +//@[30:60) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:60) StringSyntax +//@[40:60) StringComplete |'AmlComputeJobEvent'| +//@[60:61) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:200) ArrayItemSyntax +//@[28:200) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AmlComputeCpuGpuUtilization' +//@[30:69) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:69) StringSyntax +//@[40:69) StringComplete |'AmlComputeCpuGpuUtilization'| +//@[69:70) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:197) ArrayItemSyntax +//@[28:197) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AmlRunStatusChangedEvent' +//@[30:66) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:66) StringSyntax +//@[40:66) StringComplete |'AmlRunStatusChangedEvent'| +//@[66:67) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-MlWorkspace' +//@[6:44) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:44) StringSyntax +//@[12:44) StringComplete |'Deploy-Diagnostics-MlWorkspace'| +//@[44:45) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:6942) ArrayItemSyntax +//@[4:6942) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:6891) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:6891) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Database for MySQL to stream to a Log Analytics workspace when any Database for MySQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:282) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:282) StringSyntax +//@[21:282) StringComplete |'Deploys the diagnostic settings for Database for MySQL to stream to a Log Analytics workspace when any Database for MySQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[282:283) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Database for MySQL to Log Analytics workspace' +//@[8:99) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:99) StringSyntax +//@[21:99) StringComplete |'Deploy Diagnostic Settings for Database for MySQL to Log Analytics workspace'| +//@[99:100) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4525) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4525) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:104) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:104) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.DBforMySQL/servers' +//@[12:50) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:50) StringSyntax +//@[20:50) StringComplete |'Microsoft.DBforMySQL/servers'| +//@[50:51) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4388) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4388) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4311) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4311) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3329) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3329) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3285) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3285) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2453) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2453) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1521) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1521) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1466) ArrayItemSyntax +//@[22:1466) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.DBforMySQL/servers/providers/diagnosticSettings' +//@[24:89) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:89) StringSyntax +//@[30:89) StringComplete |'Microsoft.DBforMySQL/servers/providers/diagnosticSettings'| +//@[89:90) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:1038) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1038) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:436) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:436) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:186) ArrayItemSyntax +//@[28:186) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'MySqlSlowLogs' +//@[30:55) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:55) StringSyntax +//@[40:55) StringComplete |'MySqlSlowLogs'| +//@[55:56) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:187) ArrayItemSyntax +//@[28:187) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'MySqlAuditLogs' +//@[30:56) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:56) StringSyntax +//@[40:56) StringComplete |'MySqlAuditLogs'| +//@[56:57) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-MySQL' +//@[6:38) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:38) StringSyntax +//@[12:38) StringComplete |'Deploy-Diagnostics-MySQL'| +//@[38:39) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:1179) ArrayItemSyntax +//@[4:1179) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:1127) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:1127) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies creation of MySql DB accounts with exposed public endpoints' +//@[8:101) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:101) StringSyntax +//@[21:101) StringComplete |'This policy denies creation of MySql DB accounts with exposed public endpoints'| +//@[101:102) NewLine |\n| + DisplayName: 'Public network access should be disabled for MySQL' +//@[8:73) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:73) StringSyntax +//@[21:73) StringComplete |'Public network access should be disabled for MySQL'| +//@[73:74) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:383) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:383) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:351) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:351) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:110) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:110) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:82) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:82) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'SQL' +//@[10:25) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:25) StringSyntax +//@[20:25) StringComplete |'SQL'| +//@[25:26) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:432) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:432) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:323) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:323) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:295) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:295) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:116) ArrayItemSyntax +//@[14:116) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.DBforMySQL/servers' +//@[16:54) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:54) StringSyntax +//@[24:54) StringComplete |'Microsoft.DBforMySQL/servers'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:143) ArrayItemSyntax +//@[14:143) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.DBforMySQL/servers/publicNetworkAccess' +//@[16:73) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:73) StringSyntax +//@[23:73) StringComplete |'Microsoft.DBforMySQL/servers/publicNetworkAccess'| +//@[73:74) NewLine |\n| + notequals: 'Disabled' +//@[16:37) ObjectPropertySyntax +//@[16:25) IdentifierSyntax +//@[16:25) Identifier |notequals| +//@[25:26) Colon |:| +//@[27:37) StringSyntax +//@[27:37) StringComplete |'Disabled'| +//@[37:38) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:76) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:76) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-PublicEndpoint-MySQL' +//@[6:39) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:39) StringSyntax +//@[12:39) StringComplete |'Deny-PublicEndpoint-MySQL'| +//@[39:40) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:4953) ArrayItemSyntax +//@[4:4953) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:4905) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:4905) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys an Azure DDoS Protection Standard plan' +//@[8:69) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:69) StringSyntax +//@[21:69) StringComplete |'Deploys an Azure DDoS Protection Standard plan'| +//@[69:70) NewLine |\n| + DisplayName: 'Deploy an Azure DDoS Protection Standard plan' +//@[8:68) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:68) StringSyntax +//@[21:68) StringComplete |'Deploy an Azure DDoS Protection Standard plan'| +//@[68:69) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1015) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1015) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + ddosName: { +//@[10:189) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |ddosName| +//@[18:19) Colon |:| +//@[20:189) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:128) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:128) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'ddosName' +//@[14:37) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:37) StringSyntax +//@[27:37) StringComplete |'ddosName'| +//@[37:38) NewLine |\n| + description: 'Name of the Virtual WAN' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Name of the Virtual WAN'| +//@[52:53) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + ddosRegion: { +//@[10:242) ObjectPropertySyntax +//@[10:20) IdentifierSyntax +//@[10:20) Identifier |ddosRegion| +//@[20:21) Colon |:| +//@[22:242) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:179) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:179) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'ddosRegion' +//@[14:39) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:39) StringSyntax +//@[27:39) StringComplete |'ddosRegion'| +//@[39:40) NewLine |\n| + description: 'Select Azure region for Virtual WAN' +//@[14:64) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:64) StringSyntax +//@[27:64) StringComplete |'Select Azure region for Virtual WAN'| +//@[64:65) NewLine |\n| + strongType: 'location' +//@[14:36) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:36) StringSyntax +//@[26:36) StringComplete |'location'| +//@[36:37) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + rgName: { +//@[10:194) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |rgName| +//@[16:17) Colon |:| +//@[18:194) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:135) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:135) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'rgName' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'rgName'| +//@[35:36) NewLine |\n| + description: 'Provide name for resource group.' +//@[14:61) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:61) StringSyntax +//@[27:61) StringComplete |'Provide name for resource group.'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:86) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:86) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:29) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringSyntax +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:3611) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:3611) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:184) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:184) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:156) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:156) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:121) ArrayItemSyntax +//@[14:121) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Resources/subscriptions' +//@[16:59) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringSyntax +//@[24:59) StringComplete |'Microsoft.Resources/subscriptions'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:3394) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:3394) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:3317) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:3317) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/ddosProtectionPlans' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Network/ddosProtectionPlans'| +//@[59:60) NewLine |\n| + deploymentScope: 'Subscription' +//@[14:45) ObjectPropertySyntax +//@[14:29) IdentifierSyntax +//@[14:29) Identifier |deploymentScope| +//@[29:30) Colon |:| +//@[31:45) StringSyntax +//@[31:45) StringComplete |'Subscription'| +//@[45:46) NewLine |\n| + existenceScope: 'ResourceGroup' +//@[14:45) ObjectPropertySyntax +//@[14:28) IdentifierSyntax +//@[14:28) Identifier |existenceScope| +//@[28:29) Colon |:| +//@[30:45) StringSyntax +//@[30:45) StringComplete |'ResourceGroup'| +//@[45:46) NewLine |\n| + resourceGroupName: '[parameters(\'rgName\')]' +//@[14:59) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |resourceGroupName| +//@[31:32) Colon |:| +//@[33:59) StringSyntax +//@[33:59) StringComplete |'[parameters(\'rgName\')]'| +//@[59:60) NewLine |\n| + name: '[parameters(\'ddosName\')]' +//@[14:48) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:48) StringSyntax +//@[20:48) StringComplete |'[parameters(\'ddosName\')]'| +//@[48:49) NewLine |\n| + roleDefinitionIds: [ +//@[14:156) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:156) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:2862) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:2862) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + location: 'northeurope' +//@[16:39) ObjectPropertySyntax +//@[16:24) IdentifierSyntax +//@[16:24) Identifier |location| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'northeurope'| +//@[39:40) NewLine |\n| + properties: { +//@[16:2778) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:2778) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:387) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:387) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + rgName: { +//@[20:107) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |rgName| +//@[26:27) Colon |:| +//@[28:107) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'rgName\')]' +//@[22:55) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:55) StringSyntax +//@[29:55) StringComplete |'[parameters(\'rgName\')]'| +//@[55:56) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + ddosname: { +//@[20:111) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |ddosname| +//@[28:29) Colon |:| +//@[30:111) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[parameters(\'ddosname\')]' +//@[22:57) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:57) StringSyntax +//@[29:57) StringComplete |'[parameters(\'ddosname\')]'| +//@[57:58) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + ddosregion: { +//@[20:115) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |ddosregion| +//@[30:31) Colon |:| +//@[32:115) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + value: '[parameters(\'ddosRegion\')]' +//@[22:59) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:59) StringSyntax +//@[29:59) StringComplete |'[parameters(\'ddosRegion\')]'| +//@[59:60) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:2304) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2304) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' +//@[20:122) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:122) StringSyntax +//@[31:122) StringComplete |'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json'| +//@[122:123) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:346) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:346) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + rgName: { +//@[22:94) ObjectPropertySyntax +//@[22:28) IdentifierSyntax +//@[22:28) Identifier |rgName| +//@[28:29) Colon |:| +//@[30:94) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ddosname: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |ddosname| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ddosRegion: { +//@[22:98) ObjectPropertySyntax +//@[22:32) IdentifierSyntax +//@[22:32) Identifier |ddosRegion| +//@[32:33) Colon |:| +//@[34:98) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:1706) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1706) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:319) ArrayItemSyntax +//@[22:319) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/resourceGroups' +//@[24:66) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:66) StringSyntax +//@[30:66) StringComplete |'Microsoft.Resources/resourceGroups'| +//@[66:67) NewLine |\n| + apiVersion: '2018-05-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2018-05-01'| +//@[48:49) NewLine |\n| + name: '[parameters(\'rgName\')]' +//@[24:56) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:56) StringSyntax +//@[30:56) StringComplete |'[parameters(\'rgName\')]'| +//@[56:57) NewLine |\n| + location: '[deployment().location]' +//@[24:59) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:59) StringSyntax +//@[34:59) StringComplete |'[deployment().location]'| +//@[59:60) NewLine |\n| + properties: {} +//@[24:38) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:38) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) RightBrace |}| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:1331) ArrayItemSyntax +//@[22:1331) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:63) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringSyntax +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2018-05-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2018-05-01'| +//@[48:49) NewLine |\n| + name: 'ddosprotection' +//@[24:46) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:46) StringSyntax +//@[30:46) StringComplete |'ddosprotection'| +//@[46:47) NewLine |\n| + resourceGroup: '[parameters(\'rgName\')]' +//@[24:65) ObjectPropertySyntax +//@[24:37) IdentifierSyntax +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:65) StringSyntax +//@[39:65) StringComplete |'[parameters(\'rgName\')]'| +//@[65:66) NewLine |\n| + dependsOn: [ +//@[24:168) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:168) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' +//@[26:105) ArrayItemSyntax +//@[26:105) StringSyntax +//@[26:105) StringComplete |'[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]'| +//@[105:106) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:888) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:888) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:45) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringSyntax +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:778) ObjectPropertySyntax +//@[26:34) IdentifierSyntax +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:778) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json' +//@[28:118) ObjectPropertySyntax +//@[28:37) StringSyntax +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:118) StringSyntax +//@[39:118) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json'| +//@[118:119) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:53) ObjectPropertySyntax +//@[28:42) IdentifierSyntax +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringSyntax +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:42) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:42) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + resources: [ +//@[28:456) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:456) ArraySyntax +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:385) ArrayItemSyntax +//@[30:385) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Network/ddosProtectionPlans' +//@[32:77) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:77) StringSyntax +//@[38:77) StringComplete |'Microsoft.Network/ddosProtectionPlans'| +//@[77:78) NewLine |\n| + apiVersion: '2019-12-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2019-12-01'| +//@[56:57) NewLine |\n| + name: '[parameters(\'ddosName\')]' +//@[32:66) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:66) StringSyntax +//@[38:66) StringComplete |'[parameters(\'ddosName\')]'| +//@[66:67) NewLine |\n| + location: '[parameters(\'ddosRegion\')]' +//@[32:72) ObjectPropertySyntax +//@[32:40) IdentifierSyntax +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:72) StringSyntax +//@[42:72) StringComplete |'[parameters(\'ddosRegion\')]'| +//@[72:73) NewLine |\n| + properties: {} +//@[32:46) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:46) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) RightBrace |}| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + outputs: {} +//@[28:39) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |outputs| +//@[35:36) Colon |:| +//@[37:39) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-DDoSProtection' +//@[6:35) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:35) StringSyntax +//@[12:35) StringComplete |'Deploy-DDoSProtection'| +//@[35:36) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:948) ArrayItemSyntax +//@[4:948) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:904) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:904) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies the creation of vNet Peerings under the assigned scope.' +//@[8:97) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:97) StringSyntax +//@[21:97) StringComplete |'This policy denies the creation of vNet Peerings under the assigned scope.'| +//@[97:98) NewLine |\n| + DisplayName: 'Deny vNet peering ' +//@[8:41) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:41) StringSyntax +//@[21:41) StringComplete |'Deny vNet peering '| +//@[41:42) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:383) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:383) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:351) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:351) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:110) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:110) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:86) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:86) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:29) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringSyntax +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:241) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:241) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:132) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:132) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' +//@[12:78) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:78) StringSyntax +//@[20:78) StringComplete |'Microsoft.Network/virtualNetworks/virtualNetworkPeerings'| +//@[78:79) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:76) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:76) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-VNet-Peering' +//@[6:31) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:31) StringSyntax +//@[12:31) StringComplete |'Deny-VNet-Peering'| +//@[31:32) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:1039) ArrayItemSyntax +//@[4:1039) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:990) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:990) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies the creation of a private DNS in the current scope, used in combination with policies that create centralized private DNS in connectivity subscription' +//@[8:192) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:192) StringSyntax +//@[21:192) StringComplete |'This policy denies the creation of a private DNS in the current scope, used in combination with policies that create centralized private DNS in connectivity subscription'| +//@[192:193) NewLine |\n| + DisplayName: 'Deny the creation of private DNS' +//@[8:55) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:55) StringSyntax +//@[21:55) StringComplete |'Deny the creation of private DNS'| +//@[55:56) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:383) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:383) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:351) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:351) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:110) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:110) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:86) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:86) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:29) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringSyntax +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:218) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:218) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:109) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:109) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/privateDnsZones' +//@[12:55) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:55) StringSyntax +//@[20:55) StringComplete |'Microsoft.Network/privateDnsZones'| +//@[55:56) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:76) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:76) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-Private-DNS-Zones' +//@[6:36) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:36) StringSyntax +//@[12:36) StringComplete |'Deny-Private-DNS-Zones'| +//@[36:37) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:928) ArrayItemSyntax +//@[4:928) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:888) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:888) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies creation of Public IPs under the assigned scope.' +//@[8:90) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:90) StringSyntax +//@[21:90) StringComplete |'This policy denies creation of Public IPs under the assigned scope.'| +//@[90:91) NewLine |\n| + DisplayName: 'Deny the creation of public IP' +//@[8:53) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:53) StringSyntax +//@[21:53) StringComplete |'Deny the creation of public IP'| +//@[53:54) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:383) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:383) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:351) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:351) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:110) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:110) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:86) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:86) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:29) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringSyntax +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:220) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:220) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:111) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:111) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/publicIPAddresses' +//@[12:57) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:57) StringSyntax +//@[20:57) StringComplete |'Microsoft.Network/publicIPAddresses'| +//@[57:58) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:76) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:76) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-PublicIP' +//@[6:27) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:27) StringSyntax +//@[12:27) StringComplete |'Deny-PublicIP'| +//@[27:28) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5776) ArrayItemSyntax +//@[4:5776) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:5727) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:5727) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Network Interfaces to stream to a Log Analytics workspace when any Network Interfaces which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:282) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:282) StringSyntax +//@[21:282) StringComplete |'Deploys the diagnostic settings for Network Interfaces to stream to a Log Analytics workspace when any Network Interfaces which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[282:283) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Network Interfaces to Log Analytics workspace' +//@[8:99) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:99) StringSyntax +//@[21:99) StringComplete |'Deploy Diagnostic Settings for Network Interfaces to Log Analytics workspace'| +//@[99:100) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1472) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1472) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:3729) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:3729) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:111) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:111) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/networkInterfaces' +//@[12:57) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:57) StringSyntax +//@[20:57) StringComplete |'Microsoft.Network/networkInterfaces'| +//@[57:58) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:3585) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:3585) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:3508) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:3508) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:432) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:432) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:380) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:380) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:2681) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:2681) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:2637) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:2637) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:1923) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:1923) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:557) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:557) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1091) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1091) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1036) ArrayItemSyntax +//@[22:1036) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Network/networkInterfaces/providers/diagnosticSettings' +//@[24:96) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:96) StringSyntax +//@[30:96) StringComplete |'Microsoft.Network/networkInterfaces/providers/diagnosticSettings'| +//@[96:97) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:601) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:601) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:627) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:627) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-NIC' +//@[6:36) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:36) StringSyntax +//@[12:36) StringComplete |'Deploy-Diagnostics-NIC'| +//@[36:37) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:7179) ArrayItemSyntax +//@[4:7179) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:7125) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:7125) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Public IP addresses to stream to a Log Analytics workspace when any Public IP addresses which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:284) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:284) StringSyntax +//@[21:284) StringComplete |'Deploys the diagnostic settings for Public IP addresses to stream to a Log Analytics workspace when any Public IP addresses which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[284:285) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Public IP addresses to Log Analytics workspace' +//@[8:100) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:100) StringSyntax +//@[21:100) StringComplete |'Deploy Diagnostic Settings for Public IP addresses to Log Analytics workspace'| +//@[100:101) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4756) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4756) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:111) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:111) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/publicIPAddresses' +//@[12:57) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:57) StringSyntax +//@[20:57) StringComplete |'Microsoft.Network/publicIPAddresses'| +//@[57:58) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4612) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4612) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4535) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4535) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3553) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3553) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3509) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3509) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2677) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2677) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1745) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1745) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1690) ArrayItemSyntax +//@[22:1690) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Network/publicIPAddresses/providers/diagnosticSettings' +//@[24:96) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:96) StringSyntax +//@[30:96) StringComplete |'Microsoft.Network/publicIPAddresses/providers/diagnosticSettings'| +//@[96:97) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:1255) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1255) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:653) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:653) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:200) ArrayItemSyntax +//@[28:200) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DDoSProtectionNotifications' +//@[30:69) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:69) StringSyntax +//@[40:69) StringComplete |'DDoSProtectionNotifications'| +//@[69:70) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:195) ArrayItemSyntax +//@[28:195) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DDoSMitigationFlowLogs' +//@[30:64) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:64) StringSyntax +//@[40:64) StringComplete |'DDoSMitigationFlowLogs'| +//@[64:65) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:194) ArrayItemSyntax +//@[28:194) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DDoSMitigationReports' +//@[30:63) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:63) StringSyntax +//@[40:63) StringComplete |'DDoSMitigationReports'| +//@[63:64) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-PublicIP' +//@[6:41) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:41) StringSyntax +//@[12:41) StringComplete |'Deploy-Diagnostics-PublicIP'| +//@[41:42) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:7713) ArrayItemSyntax +//@[4:7713) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:7667) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:7667) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys NSG flow logs and traffic analytics to a storageaccountid with a specfied retention period.' +//@[8:122) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:122) StringSyntax +//@[21:122) StringComplete |'Deploys NSG flow logs and traffic analytics to a storageaccountid with a specfied retention period.'| +//@[122:123) NewLine |\n| + DisplayName: 'Deploys NSG flow logs and traffic analytics' +//@[8:66) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:66) StringSyntax +//@[21:66) StringComplete |'Deploys NSG flow logs and traffic analytics'| +//@[66:67) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1714) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1714) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + retention: { +//@[10:167) ObjectPropertySyntax +//@[10:19) IdentifierSyntax +//@[10:19) Identifier |retention| +//@[19:20) Colon |:| +//@[21:167) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Integer' +//@[12:27) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:27) StringSyntax +//@[18:27) StringComplete |'Integer'| +//@[27:28) NewLine |\n| + metadata: { +//@[12:76) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:76) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Retention' +//@[14:38) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:38) StringSyntax +//@[27:38) StringComplete |'Retention'| +//@[38:39) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: 5 +//@[12:27) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:27) IntegerLiteralSyntax +//@[26:27) Integer |5| +//@[27:28) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + storageAccountResourceId: { +//@[10:233) ObjectPropertySyntax +//@[10:34) IdentifierSyntax +//@[10:34) Identifier |storageAccountResourceId| +//@[34:35) Colon |:| +//@[36:233) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:156) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:156) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Storage Account Resource Id' +//@[14:56) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:56) StringSyntax +//@[27:56) StringComplete |'Storage Account Resource Id'| +//@[56:57) NewLine |\n| + strongType: 'Microsoft.Storage/storageAccounts' +//@[14:61) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:61) StringSyntax +//@[26:61) StringComplete |'Microsoft.Storage/storageAccounts'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + trafficAnalyticsInterval: { +//@[10:224) ObjectPropertySyntax +//@[10:34) IdentifierSyntax +//@[10:34) Identifier |trafficAnalyticsInterval| +//@[34:35) Colon |:| +//@[36:224) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'Integer' +//@[12:27) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:27) StringSyntax +//@[18:27) StringComplete |'Integer'| +//@[27:28) NewLine |\n| + metadata: { +//@[12:117) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:117) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Traffic Analytics processing interval mins (10/60)' +//@[14:79) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Traffic Analytics processing interval mins (10/60)'| +//@[79:80) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: 60 +//@[12:28) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:28) IntegerLiteralSyntax +//@[26:28) Integer |60| +//@[28:29) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + flowAnalyticsEnabled: { +//@[10:197) ObjectPropertySyntax +//@[10:30) IdentifierSyntax +//@[10:30) Identifier |flowAnalyticsEnabled| +//@[30:31) Colon |:| +//@[32:197) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'Boolean' +//@[12:27) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:27) StringSyntax +//@[18:27) StringComplete |'Boolean'| +//@[27:28) NewLine |\n| + metadata: { +//@[12:91) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:91) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable Traffic Analytics' +//@[14:53) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:53) StringSyntax +//@[27:53) StringComplete |'Enable Traffic Analytics'| +//@[53:54) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: false +//@[12:31) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:31) BooleanLiteralSyntax +//@[26:31) FalseKeyword |false| +//@[31:32) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logAnalytics: { +//@[10:501) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:501) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:407) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:407) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + displayName: 'Resource ID of Log Analytics workspace' +//@[14:67) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:67) StringSyntax +//@[27:67) StringComplete |'Resource ID of Log Analytics workspace'| +//@[67:68) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: '' +//@[12:28) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:28) StringSyntax +//@[26:28) StringComplete |''| +//@[28:29) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:5620) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:5620) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:115) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:115) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/networkSecurityGroups' +//@[12:61) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:61) StringSyntax +//@[20:61) StringComplete |'Microsoft.Network/networkSecurityGroups'| +//@[61:62) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:5472) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:5472) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:5395) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:5395) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/networkWatchers/flowLogs' +//@[14:64) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:64) StringSyntax +//@[20:64) StringComplete |'Microsoft.Network/networkWatchers/flowLogs'| +//@[64:65) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + resourceGroupName: 'NetworkWatcherRG' +//@[14:51) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |resourceGroupName| +//@[31:32) Colon |:| +//@[33:51) StringSyntax +//@[33:51) StringComplete |'NetworkWatcherRG'| +//@[51:52) NewLine |\n| + existenceCondition: { +//@[14:506) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:506) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:454) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:454) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Network/networkWatchers/flowLogs/enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Network/networkWatchers/flowLogs/enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:256) ArrayItemSyntax +//@[18:256) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Network/networkWatchers/flowLogs/flowAnalyticsConfiguration.networkWatcherFlowAnalyticsConfiguration.enabled' +//@[20:147) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:147) StringSyntax +//@[27:147) StringComplete |'Microsoft.Network/networkWatchers/flowLogs/flowAnalyticsConfiguration.networkWatcherFlowAnalyticsConfiguration.enabled'| +//@[147:148) NewLine |\n| + equals: '[parameters(\'flowAnalyticsEnabled\')]' +//@[20:68) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:68) StringSyntax +//@[28:68) StringComplete |'[parameters(\'flowAnalyticsEnabled\')]'| +//@[68:69) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + deployment: { +//@[14:4471) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:4471) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:4427) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:4427) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:1052) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:1052) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + networkSecurityGroupName: { +//@[20:118) ObjectPropertySyntax +//@[20:44) IdentifierSyntax +//@[20:44) Identifier |networkSecurityGroupName| +//@[44:45) Colon |:| +//@[46:118) ObjectSyntax +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceGroupName: { +//@[20:116) ObjectPropertySyntax +//@[20:37) IdentifierSyntax +//@[20:37) Identifier |resourceGroupName| +//@[37:38) Colon |:| +//@[39:116) ObjectSyntax +//@[39:40) LeftBrace |{| +//@[40:41) NewLine |\n| + value: '[resourceGroup().name]' +//@[22:53) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:53) StringSyntax +//@[29:53) StringComplete |'[resourceGroup().name]'| +//@[53:54) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + storageAccountResourceId: { +//@[20:143) ObjectPropertySyntax +//@[20:44) IdentifierSyntax +//@[20:44) Identifier |storageAccountResourceId| +//@[44:45) Colon |:| +//@[46:143) ObjectSyntax +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + value: '[parameters(\'storageAccountResourceId\')]' +//@[22:73) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:73) StringSyntax +//@[29:73) StringComplete |'[parameters(\'storageAccountResourceId\')]'| +//@[73:74) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + retention: { +//@[20:113) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |retention| +//@[29:30) Colon |:| +//@[31:113) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) NewLine |\n| + value: '[parameters(\'retention\')]' +//@[22:58) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:58) StringSyntax +//@[29:58) StringComplete |'[parameters(\'retention\')]'| +//@[58:59) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + flowAnalyticsEnabled: { +//@[20:135) ObjectPropertySyntax +//@[20:40) IdentifierSyntax +//@[20:40) Identifier |flowAnalyticsEnabled| +//@[40:41) Colon |:| +//@[42:135) ObjectSyntax +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + value: '[parameters(\'flowAnalyticsEnabled\')]' +//@[22:69) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:69) StringSyntax +//@[29:69) StringComplete |'[parameters(\'flowAnalyticsEnabled\')]'| +//@[69:70) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + trafficAnalyticsInterval: { +//@[20:143) ObjectPropertySyntax +//@[20:44) IdentifierSyntax +//@[20:44) Identifier |trafficAnalyticsInterval| +//@[44:45) Colon |:| +//@[46:143) ObjectSyntax +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + value: '[parameters(\'trafficAnalyticsInterval\')]' +//@[22:73) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:73) StringSyntax +//@[29:73) StringComplete |'[parameters(\'trafficAnalyticsInterval\')]'| +//@[73:74) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:3288) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:3288) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:112) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:112) StringSyntax +//@[31:112) StringComplete |'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[112:113) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:897) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:897) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + networkSecurityGroupName: { +//@[22:112) ObjectPropertySyntax +//@[22:46) IdentifierSyntax +//@[22:46) Identifier |networkSecurityGroupName| +//@[46:47) Colon |:| +//@[48:112) ObjectSyntax +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + resourceGroupName: { +//@[22:105) ObjectPropertySyntax +//@[22:39) IdentifierSyntax +//@[22:39) Identifier |resourceGroupName| +//@[39:40) Colon |:| +//@[41:105) ObjectSyntax +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + storageAccountResourceId: { +//@[22:112) ObjectPropertySyntax +//@[22:46) IdentifierSyntax +//@[22:46) Identifier |storageAccountResourceId| +//@[46:47) Colon |:| +//@[48:112) ObjectSyntax +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + retention: { +//@[22:94) ObjectPropertySyntax +//@[22:31) IdentifierSyntax +//@[22:31) Identifier |retention| +//@[31:32) Colon |:| +//@[33:94) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + type: 'int' +//@[24:35) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:35) StringSyntax +//@[30:35) StringComplete |'int'| +//@[35:36) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + flowAnalyticsEnabled: { +//@[22:106) ObjectPropertySyntax +//@[22:42) IdentifierSyntax +//@[22:42) Identifier |flowAnalyticsEnabled| +//@[42:43) Colon |:| +//@[44:106) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + type: 'bool' +//@[24:36) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:36) StringSyntax +//@[30:36) StringComplete |'bool'| +//@[36:37) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + trafficAnalyticsInterval: { +//@[22:109) ObjectPropertySyntax +//@[22:46) IdentifierSyntax +//@[22:46) Identifier |trafficAnalyticsInterval| +//@[46:47) Colon |:| +//@[48:109) ObjectSyntax +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + type: 'int' +//@[24:35) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:35) StringSyntax +//@[30:35) StringComplete |'int'| +//@[35:36) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:2115) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:2115) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:2060) ArrayItemSyntax +//@[22:2060) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Network/networkWatchers/flowLogs' +//@[24:74) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:74) StringSyntax +//@[30:74) StringComplete |'Microsoft.Network/networkWatchers/flowLogs'| +//@[74:75) NewLine |\n| + apiVersion: '2020-05-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2020-05-01'| +//@[48:49) NewLine |\n| + name: '[take(concat(\'NetworkWatcher_\', toLower(parameters(\'location\')), \'/\', parameters(\'networkSecurityGroupName\'), \'-\', parameters(\'resourceGroupName\'), \'-flowlog\' ), 80)]' +//@[24:213) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:213) StringSyntax +//@[30:213) StringComplete |'[take(concat(\'NetworkWatcher_\', toLower(parameters(\'location\')), \'/\', parameters(\'networkSecurityGroupName\'), \'-\', parameters(\'resourceGroupName\'), \'-flowlog\' ), 80)]'| +//@[213:214) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + properties: { +//@[24:1611) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1611) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + targetResourceId: '[resourceId(parameters(\'resourceGroupName\'), \'Microsoft.Network/networkSecurityGroups\', parameters(\'networkSecurityGroupName\'))]' +//@[26:180) ObjectPropertySyntax +//@[26:42) IdentifierSyntax +//@[26:42) Identifier |targetResourceId| +//@[42:43) Colon |:| +//@[44:180) StringSyntax +//@[44:180) StringComplete |'[resourceId(parameters(\'resourceGroupName\'), \'Microsoft.Network/networkSecurityGroups\', parameters(\'networkSecurityGroupName\'))]'| +//@[180:181) NewLine |\n| + storageId: '[parameters(\'storageAccountResourceId\')]' +//@[26:81) ObjectPropertySyntax +//@[26:35) IdentifierSyntax +//@[26:35) Identifier |storageId| +//@[35:36) Colon |:| +//@[37:81) StringSyntax +//@[37:81) StringComplete |'[parameters(\'storageAccountResourceId\')]'| +//@[81:82) NewLine |\n| + enabled: true +//@[26:39) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |enabled| +//@[33:34) Colon |:| +//@[35:39) BooleanLiteralSyntax +//@[35:39) TrueKeyword |true| +//@[39:40) NewLine |\n| + retentionPolicy: { +//@[26:178) ObjectPropertySyntax +//@[26:41) IdentifierSyntax +//@[26:41) Identifier |retentionPolicy| +//@[41:42) Colon |:| +//@[43:178) ObjectSyntax +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + enabled: true +//@[28:41) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |enabled| +//@[35:36) Colon |:| +//@[37:41) BooleanLiteralSyntax +//@[37:41) TrueKeyword |true| +//@[41:42) NewLine |\n| + days: '[parameters(\'retention\')]' +//@[28:63) ObjectPropertySyntax +//@[28:32) IdentifierSyntax +//@[28:32) Identifier |days| +//@[32:33) Colon |:| +//@[34:63) StringSyntax +//@[34:63) StringComplete |'[parameters(\'retention\')]'| +//@[63:64) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + format: { +//@[26:143) ObjectPropertySyntax +//@[26:32) IdentifierSyntax +//@[26:32) Identifier |format| +//@[32:33) Colon |:| +//@[34:143) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + type: 'JSON' +//@[28:40) ObjectPropertySyntax +//@[28:32) IdentifierSyntax +//@[28:32) Identifier |type| +//@[32:33) Colon |:| +//@[34:40) StringSyntax +//@[34:40) StringComplete |'JSON'| +//@[40:41) NewLine |\n| + version: 2 +//@[28:38) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |version| +//@[35:36) Colon |:| +//@[37:38) IntegerLiteralSyntax +//@[37:38) Integer |2| +//@[38:39) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + flowAnalyticsConfiguration: { +//@[26:921) ObjectPropertySyntax +//@[26:52) IdentifierSyntax +//@[26:52) Identifier |flowAnalyticsConfiguration| +//@[52:53) Colon |:| +//@[54:921) ObjectSyntax +//@[54:55) LeftBrace |{| +//@[55:56) NewLine |\n| + networkWatcherFlowAnalyticsConfiguration: { +//@[28:837) ObjectPropertySyntax +//@[28:68) IdentifierSyntax +//@[28:68) Identifier |networkWatcherFlowAnalyticsConfiguration| +//@[68:69) Colon |:| +//@[70:837) ObjectSyntax +//@[70:71) LeftBrace |{| +//@[71:72) NewLine |\n| + enabled: '[bool(parameters(\'flowAnalyticsEnabled\'))]' +//@[30:85) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:85) StringSyntax +//@[39:85) StringComplete |'[bool(parameters(\'flowAnalyticsEnabled\'))]'| +//@[85:86) NewLine |\n| + trafficAnalyticsInterval: '[parameters(\'trafficAnalyticsInterval\')]' +//@[30:100) ObjectPropertySyntax +//@[30:54) IdentifierSyntax +//@[30:54) Identifier |trafficAnalyticsInterval| +//@[54:55) Colon |:| +//@[56:100) StringSyntax +//@[56:100) StringComplete |'[parameters(\'trafficAnalyticsInterval\')]'| +//@[100:101) NewLine |\n| + workspaceId: '[if(not(empty(parameters(\'logAnalytics\'))), reference(parameters(\'logAnalytics\'), \'2020-03-01-preview\', \'Full\').properties.customerId, json(\'null\')) ]' +//@[30:205) ObjectPropertySyntax +//@[30:41) IdentifierSyntax +//@[30:41) Identifier |workspaceId| +//@[41:42) Colon |:| +//@[43:205) StringSyntax +//@[43:205) StringComplete |'[if(not(empty(parameters(\'logAnalytics\'))), reference(parameters(\'logAnalytics\'), \'2020-03-01-preview\', \'Full\').properties.customerId, json(\'null\')) ]'| +//@[205:206) NewLine |\n| + workspaceRegion: '[if(not(empty(parameters(\'logAnalytics\'))), reference(parameters(\'logAnalytics\'), \'2020-03-01-preview\', \'Full\').location, json(\'null\')) ]' +//@[30:196) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |workspaceRegion| +//@[45:46) Colon |:| +//@[47:196) StringSyntax +//@[47:196) StringComplete |'[if(not(empty(parameters(\'logAnalytics\'))), reference(parameters(\'logAnalytics\'), \'2020-03-01-preview\', \'Full\').location, json(\'null\')) ]'| +//@[196:197) NewLine |\n| + workspaceResourceId: '[if(not(empty(parameters(\'logAnalytics\'))), parameters(\'logAnalytics\'), json(\'null\'))]' +//@[30:145) ObjectPropertySyntax +//@[30:49) IdentifierSyntax +//@[30:49) Identifier |workspaceResourceId| +//@[49:50) Colon |:| +//@[51:145) StringSyntax +//@[51:145) StringComplete |'[if(not(empty(parameters(\'logAnalytics\'))), parameters(\'logAnalytics\'), json(\'null\'))]'| +//@[145:146) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Nsg-FlowLogs' +//@[6:33) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:33) StringSyntax +//@[12:33) StringComplete |'Deploy-Nsg-FlowLogs'| +//@[33:34) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:1251) ArrayItemSyntax +//@[4:1251) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:1201) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:1201) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies the creation of a subsnet with out an Network Security Group. NSG help to protect traffic across subnet-level.' +//@[8:152) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:152) StringSyntax +//@[21:152) StringComplete |'This policy denies the creation of a subsnet with out an Network Security Group. NSG help to protect traffic across subnet-level.'| +//@[152:153) NewLine |\n| + DisplayName: 'Subnets should have a Network Security Group ' +//@[8:68) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:68) StringSyntax +//@[21:68) StringComplete |'Subnets should have a Network Security Group '| +//@[68:69) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:383) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:383) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:351) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:351) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:110) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:110) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:86) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:86) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:29) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringSyntax +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:456) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:456) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:347) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:347) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:319) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:319) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:129) ArrayItemSyntax +//@[14:129) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Network/virtualNetworks/subnets' +//@[16:67) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:67) StringSyntax +//@[24:67) StringComplete |'Microsoft.Network/virtualNetworks/subnets'| +//@[67:68) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:154) ArrayItemSyntax +//@[14:154) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.Network/virtualNetworks/subnets/networkSecurityGroup.id' +//@[16:90) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:90) StringSyntax +//@[23:90) StringComplete |'Microsoft.Network/virtualNetworks/subnets/networkSecurityGroup.id'| +//@[90:91) NewLine |\n| + exists: 'false' +//@[16:31) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |exists| +//@[22:23) Colon |:| +//@[24:31) StringSyntax +//@[24:31) StringComplete |'false'| +//@[31:32) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:76) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:76) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-Subnet-Without-Nsg' +//@[6:37) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:37) StringSyntax +//@[12:37) StringComplete |'Deny-Subnet-Without-Nsg'| +//@[37:38) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:1211) ArrayItemSyntax +//@[4:1211) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:1161) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:1161) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + displayName: 'Subnets should have a User Defined Route' +//@[8:63) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |displayName| +//@[19:20) Colon |:| +//@[21:63) StringSyntax +//@[21:63) StringComplete |'Subnets should have a User Defined Route'| +//@[63:64) NewLine |\n| + policyType: 'Custom' +//@[8:28) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |policyType| +//@[18:19) Colon |:| +//@[20:28) StringSyntax +//@[20:28) StringComplete |'Custom'| +//@[28:29) NewLine |\n| + mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + description: 'This policy denies the creation of a subsnet with out a User Defined Route.' +//@[8:98) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |description| +//@[19:20) Colon |:| +//@[21:98) StringSyntax +//@[21:98) StringComplete |'This policy denies the creation of a subsnet with out a User Defined Route.'| +//@[98:99) NewLine |\n| + metadata: { +//@[8:86) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:86) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:29) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringSyntax +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + parameters: { +//@[8:383) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |parameters| +//@[18:19) Colon |:| +//@[20:383) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:351) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:351) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + allowedValues: [ +//@[12:110) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:110) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + policyRule: { +//@[8:446) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |policyRule| +//@[18:19) Colon |:| +//@[20:446) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:337) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:337) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:309) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:309) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:129) ArrayItemSyntax +//@[14:129) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Network/virtualNetworks/subnets' +//@[16:67) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:67) StringSyntax +//@[24:67) StringComplete |'Microsoft.Network/virtualNetworks/subnets'| +//@[67:68) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:144) ArrayItemSyntax +//@[14:144) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.Network/virtualNetworks/subnets/routeTable.id' +//@[16:80) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:80) StringSyntax +//@[23:80) StringComplete |'Microsoft.Network/virtualNetworks/subnets/routeTable.id'| +//@[80:81) NewLine |\n| + exists: 'false' +//@[16:31) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |exists| +//@[22:23) Colon |:| +//@[24:31) StringSyntax +//@[24:31) StringComplete |'false'| +//@[31:32) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:76) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:76) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-Subnet-Without-Udr' +//@[6:37) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:37) StringSyntax +//@[12:37) StringComplete |'Deny-Subnet-Without-Udr'| +//@[37:38) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:1274) ArrayItemSyntax +//@[4:1274) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + Properties: { +//@[6:1223) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |Properties| +//@[16:17) Colon |:| +//@[18:1223) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies the creation of vNet Peerings outside of the same subscriptions under the assigned scope.' +//@[8:131) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:131) StringSyntax +//@[21:131) StringComplete |'This policy denies the creation of vNet Peerings outside of the same subscriptions under the assigned scope.'| +//@[131:132) NewLine |\n| + DisplayName: 'Deny vNet peering cross subscription.' +//@[8:60) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:60) StringSyntax +//@[21:60) StringComplete |'Deny vNet peering cross subscription.'| +//@[60:61) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + metadata: { +//@[8:88) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:88) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0.0' +//@[10:28) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:28) StringSyntax +//@[19:28) StringComplete |'1.0.0.0'| +//@[28:29) NewLine |\n| + category: 'Network' +//@[10:29) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringSyntax +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + Parameters: { +//@[8:383) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:383) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:351) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:351) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + allowedValues: [ +//@[12:110) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:110) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:505) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:505) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:396) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:396) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:368) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:368) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:144) ArrayItemSyntax +//@[14:144) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' +//@[16:82) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:82) StringSyntax +//@[24:82) StringComplete |'Microsoft.Network/virtualNetworks/virtualNetworkPeerings'| +//@[82:83) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:188) ArrayItemSyntax +//@[14:188) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings/remoteVirtualNetwork.id' +//@[16:105) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:105) StringSyntax +//@[23:105) StringComplete |'Microsoft.Network/virtualNetworks/virtualNetworkPeerings/remoteVirtualNetwork.id'| +//@[105:106) NewLine |\n| + notcontains: '[subscription().id]' +//@[16:50) ObjectPropertySyntax +//@[16:27) IdentifierSyntax +//@[16:27) Identifier |notcontains| +//@[27:28) Colon |:| +//@[29:50) StringSyntax +//@[29:50) StringComplete |'[subscription().id]'| +//@[50:51) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:76) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:76) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-VNET-Peer-Cross-Sub' +//@[6:38) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:38) StringSyntax +//@[12:38) StringComplete |'Deny-VNET-Peer-Cross-Sub'| +//@[38:39) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5834) ArrayItemSyntax +//@[4:5834) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:5767) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:5767) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Network Security Groups to stream to a Log Analytics workspace when any Network Security Groups which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:292) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:292) StringSyntax +//@[21:292) StringComplete |'Deploys the diagnostic settings for Network Security Groups to stream to a Log Analytics workspace when any Network Security Groups which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[292:293) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Network Security Groups to Log Analytics workspace' +//@[8:104) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:104) StringSyntax +//@[21:104) StringComplete |'Deploy Diagnostic Settings for Network Security Groups to Log Analytics workspace'| +//@[104:105) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1463) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1463) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:3763) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:3763) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:115) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:115) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/networkSecurityGroups' +//@[12:61) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:61) StringSyntax +//@[20:61) StringComplete |'Microsoft.Network/networkSecurityGroups'| +//@[61:62) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:3615) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:3615) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:3538) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:3538) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:429) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:429) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:377) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:377) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:2714) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:2714) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:2670) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:2670) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:1962) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:1962) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:554) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:554) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1133) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1133) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1078) ArrayItemSyntax +//@[22:1078) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Network/networkSecurityGroups/providers/diagnosticSettings' +//@[24:100) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:100) StringSyntax +//@[30:100) StringComplete |'Microsoft.Network/networkSecurityGroups/providers/diagnosticSettings'| +//@[100:101) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:639) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:639) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [] +//@[26:37) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + logs: [ +//@[26:465) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:465) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:198) ArrayItemSyntax +//@[28:198) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'NetworkSecurityGroupEvent' +//@[30:67) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:67) StringSyntax +//@[40:67) StringComplete |'NetworkSecurityGroupEvent'| +//@[67:68) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:204) ArrayItemSyntax +//@[28:204) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'NetworkSecurityGroupRuleCounter' +//@[30:73) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:73) StringSyntax +//@[40:73) StringComplete |'NetworkSecurityGroupRuleCounter'| +//@[73:74) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:621) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:621) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-NetworkSecurityGroups' +//@[6:54) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:54) StringSyntax +//@[12:54) StringComplete |'Deploy-Diagnostics-NetworkSecurityGroups'| +//@[54:55) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:7184) ArrayItemSyntax +//@[4:7184) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:7128) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:7128) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Database for PostgreSQL to stream to a Log Analytics workspace when any Database for PostgreSQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:292) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:292) StringSyntax +//@[21:292) StringComplete |'Deploys the diagnostic settings for Database for PostgreSQL to stream to a Log Analytics workspace when any Database for PostgreSQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[292:293) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Database for PostgreSQL to Log Analytics workspace' +//@[8:104) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:104) StringSyntax +//@[21:104) StringComplete |'Deploy Diagnostic Settings for Database for PostgreSQL to Log Analytics workspace'| +//@[104:105) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4747) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4747) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:109) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:109) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.DBforPostgreSQL/servers' +//@[12:55) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:55) StringSyntax +//@[20:55) StringComplete |'Microsoft.DBforPostgreSQL/servers'| +//@[55:56) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4605) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4605) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4528) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4528) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3546) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3546) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3502) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3502) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2670) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2670) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1738) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1738) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1683) ArrayItemSyntax +//@[22:1683) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.DBforPostgreSQL/servers/providers/diagnosticSettings' +//@[24:94) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:94) StringSyntax +//@[30:94) StringComplete |'Microsoft.DBforPostgreSQL/servers/providers/diagnosticSettings'| +//@[94:95) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:1250) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1250) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:648) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:648) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:187) ArrayItemSyntax +//@[28:187) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'PostgreSQLLogs' +//@[30:56) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:56) StringSyntax +//@[40:56) StringComplete |'PostgreSQLLogs'| +//@[56:57) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:200) ArrayItemSyntax +//@[28:200) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'QueryStoreRuntimeStatistics' +//@[30:69) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:69) StringSyntax +//@[40:69) StringComplete |'QueryStoreRuntimeStatistics'| +//@[69:70) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:197) ArrayItemSyntax +//@[28:197) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'QueryStoreWaitStatistics' +//@[30:66) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:66) StringSyntax +//@[40:66) StringComplete |'QueryStoreWaitStatistics'| +//@[66:67) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-PostgreSQL' +//@[6:43) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:43) StringSyntax +//@[12:43) StringComplete |'Deploy-Diagnostics-PostgreSQL'| +//@[43:44) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:1205) ArrayItemSyntax +//@[4:1205) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:1148) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:1148) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies creation of Postgre SQL DB accounts with exposed public endpoints' +//@[8:107) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:107) StringSyntax +//@[21:107) StringComplete |'This policy denies creation of Postgre SQL DB accounts with exposed public endpoints'| +//@[107:108) NewLine |\n| + DisplayName: 'Public network access should be disabled for PostgreSql' +//@[8:78) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:78) StringSyntax +//@[21:78) StringComplete |'Public network access should be disabled for PostgreSql'| +//@[78:79) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:383) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:383) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:351) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:351) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:110) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:110) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:82) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:82) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'SQL' +//@[10:25) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:25) StringSyntax +//@[20:25) StringComplete |'SQL'| +//@[25:26) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:442) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:442) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:333) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:333) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:305) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:305) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:121) ArrayItemSyntax +//@[14:121) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.DBforPostgreSQL/servers' +//@[16:59) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringSyntax +//@[24:59) StringComplete |'Microsoft.DBforPostgreSQL/servers'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:148) ArrayItemSyntax +//@[14:148) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.DBforPostgreSQL/servers/publicNetworkAccess' +//@[16:78) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:78) StringSyntax +//@[23:78) StringComplete |'Microsoft.DBforPostgreSQL/servers/publicNetworkAccess'| +//@[78:79) NewLine |\n| + notequals: 'Disabled' +//@[16:37) ObjectPropertySyntax +//@[16:25) IdentifierSyntax +//@[16:25) Identifier |notequals| +//@[25:26) Colon |:| +//@[27:37) StringSyntax +//@[27:37) StringComplete |'Disabled'| +//@[37:38) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:76) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:76) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-PublicEndpoint-PostgreSql' +//@[6:44) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:44) StringSyntax +//@[12:44) StringComplete |'Deny-PublicEndpoint-PostgreSql'| +//@[44:45) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:6772) ArrayItemSyntax +//@[4:6772) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:6711) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:6711) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Power BI Embedded to stream to a Log Analytics workspace when any Power BI Embedded which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:280) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:280) StringSyntax +//@[21:280) StringComplete |'Deploys the diagnostic settings for Power BI Embedded to stream to a Log Analytics workspace when any Power BI Embedded which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[280:281) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Power BI Embedded to Log Analytics workspace' +//@[8:98) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:98) StringSyntax +//@[21:98) StringComplete |'Deploy Diagnostic Settings for Power BI Embedded to Log Analytics workspace'| +//@[98:99) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4348) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4348) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:113) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:113) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.PowerBIDedicated/capacities' +//@[12:59) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.PowerBIDedicated/capacities'| +//@[59:60) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4202) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4202) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4125) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4125) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3143) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3143) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3099) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3099) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2267) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2267) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1335) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1335) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1280) ArrayItemSyntax +//@[22:1280) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.PowerBIDedicated/capacities/providers/diagnosticSettings' +//@[24:98) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:98) StringSyntax +//@[30:98) StringComplete |'Microsoft.PowerBIDedicated/capacities/providers/diagnosticSettings'| +//@[98:99) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:843) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:843) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:241) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:241) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:179) ArrayItemSyntax +//@[28:179) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Engine' +//@[30:48) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:48) StringSyntax +//@[40:48) StringComplete |'Engine'| +//@[48:49) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-PowerBIEmbedded' +//@[6:48) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:48) StringSyntax +//@[12:48) StringComplete |'Deploy-Diagnostics-PowerBIEmbedded'| +//@[48:49) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:7904) ArrayItemSyntax +//@[4:7904) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:7845) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:7845) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Recovery Services vaults to stream to a Log Analytics workspace when any Recovery Services vaults which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:294) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:294) StringSyntax +//@[21:294) StringComplete |'Deploys the diagnostic settings for Recovery Services vaults to stream to a Log Analytics workspace when any Recovery Services vaults which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[294:295) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Recovery Services vaults to Log Analytics workspace' +//@[8:105) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:105) StringSyntax +//@[21:105) StringComplete |'Deploy Diagnostic Settings for Recovery Services vaults to Log Analytics workspace'| +//@[105:106) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1463) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1463) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:5838) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:5838) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:109) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:109) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.RecoveryServices/vaults' +//@[12:55) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:55) StringSyntax +//@[20:55) StringComplete |'Microsoft.RecoveryServices/vaults'| +//@[55:56) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:5696) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:5696) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:5619) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:5619) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:1546) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:1546) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allof: [ +//@[16:1494) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allof| +//@[21:22) Colon |:| +//@[23:1494) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:1096) ArrayItemSyntax +//@[18:1096) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + count: { +//@[20:1026) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |count| +//@[25:26) Colon |:| +//@[27:1026) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs[*]' +//@[22:76) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |field| +//@[27:28) Colon |:| +//@[29:76) StringSyntax +//@[29:76) StringComplete |'Microsoft.Insights/diagnosticSettings/logs[*]'| +//@[76:77) NewLine |\n| + where: { +//@[22:898) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |where| +//@[27:28) Colon |:| +//@[29:898) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) NewLine |\n| + allof: [ +//@[24:843) ObjectPropertySyntax +//@[24:29) IdentifierSyntax +//@[24:29) Identifier |allof| +//@[29:30) Colon |:| +//@[31:843) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[26:594) ArrayItemSyntax +//@[26:594) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs[*].Category' +//@[28:91) ObjectPropertySyntax +//@[28:33) IdentifierSyntax +//@[28:33) Identifier |field| +//@[33:34) Colon |:| +//@[35:91) StringSyntax +//@[35:91) StringComplete |'Microsoft.Insights/diagnosticSettings/logs[*].Category'| +//@[91:92) NewLine |\n| + in: [ +//@[28:446) ObjectPropertySyntax +//@[28:30) IdentifierSyntax +//@[28:30) Identifier |in| +//@[30:31) Colon |:| +//@[32:446) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + 'CoreAzureBackup' +//@[30:47) ArrayItemSyntax +//@[30:47) StringSyntax +//@[30:47) StringComplete |'CoreAzureBackup'| +//@[47:48) NewLine |\n| + 'AddonAzureBackupJobs' +//@[30:52) ArrayItemSyntax +//@[30:52) StringSyntax +//@[30:52) StringComplete |'AddonAzureBackupJobs'| +//@[52:53) NewLine |\n| + 'AddonAzureBackupAlerts' +//@[30:54) ArrayItemSyntax +//@[30:54) StringSyntax +//@[30:54) StringComplete |'AddonAzureBackupAlerts'| +//@[54:55) NewLine |\n| + 'AddonAzureBackupPolicy' +//@[30:54) ArrayItemSyntax +//@[30:54) StringSyntax +//@[30:54) StringComplete |'AddonAzureBackupPolicy'| +//@[54:55) NewLine |\n| + 'AddonAzureBackupStorage' +//@[30:55) ArrayItemSyntax +//@[30:55) StringSyntax +//@[30:55) StringComplete |'AddonAzureBackupStorage'| +//@[55:56) NewLine |\n| + 'AddonAzureBackupProtectedInstance' +//@[30:65) ArrayItemSyntax +//@[30:65) StringSyntax +//@[30:65) StringComplete |'AddonAzureBackupProtectedInstance'| +//@[65:66) NewLine |\n| + 'AzureBackupReport' +//@[30:49) ArrayItemSyntax +//@[30:49) StringSyntax +//@[30:49) StringComplete |'AzureBackupReport'| +//@[49:50) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:189) ArrayItemSyntax +//@[26:189) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs[*].Enabled' +//@[28:90) ObjectPropertySyntax +//@[28:33) IdentifierSyntax +//@[28:33) Identifier |field| +//@[33:34) Colon |:| +//@[35:90) StringSyntax +//@[35:90) StringComplete |'Microsoft.Insights/diagnosticSettings/logs[*].Enabled'| +//@[90:91) NewLine |\n| + equals: 'True' +//@[28:42) ObjectPropertySyntax +//@[28:34) IdentifierSyntax +//@[28:34) Identifier |equals| +//@[34:35) Colon |:| +//@[36:42) StringSyntax +//@[36:42) StringComplete |'True'| +//@[42:43) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + Equals: 7 +//@[20:29) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |Equals| +//@[26:27) Colon |:| +//@[28:29) IntegerLiteralSyntax +//@[28:29) Integer |7| +//@[29:30) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:174) ArrayItemSyntax +//@[18:174) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logAnalyticsDestinationType' +//@[20:94) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:94) StringSyntax +//@[27:94) StringComplete |'Microsoft.Insights/diagnosticSettings/logAnalyticsDestinationType'| +//@[94:95) NewLine |\n| + equals: 'Dedicated' +//@[20:39) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:39) StringSyntax +//@[28:39) StringComplete |'Dedicated'| +//@[39:40) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3678) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3678) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3634) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3634) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2926) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2926) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:554) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:554) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:2097) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:2097) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:2042) ArrayItemSyntax +//@[22:2042) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.RecoveryServices/vaults/providers/diagnosticSettings' +//@[24:94) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:94) StringSyntax +//@[30:94) StringComplete |'Microsoft.RecoveryServices/vaults/providers/diagnosticSettings'| +//@[94:95) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:1672) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1672) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + logAnalyticsDestinationType: 'Dedicated' +//@[26:66) ObjectPropertySyntax +//@[26:53) IdentifierSyntax +//@[26:53) Identifier |logAnalyticsDestinationType| +//@[53:54) Colon |:| +//@[55:66) StringSyntax +//@[55:66) StringComplete |'Dedicated'| +//@[66:67) NewLine |\n| + metrics: [] +//@[26:37) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + logs: [ +//@[26:1431) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:1431) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:188) ArrayItemSyntax +//@[28:188) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'CoreAzureBackup' +//@[30:57) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:57) StringSyntax +//@[40:57) StringComplete |'CoreAzureBackup'| +//@[57:58) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:195) ArrayItemSyntax +//@[28:195) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AddonAzureBackupAlerts' +//@[30:64) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:64) StringSyntax +//@[40:64) StringComplete |'AddonAzureBackupAlerts'| +//@[64:65) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:193) ArrayItemSyntax +//@[28:193) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AddonAzureBackupJobs' +//@[30:62) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:62) StringSyntax +//@[40:62) StringComplete |'AddonAzureBackupJobs'| +//@[62:63) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:195) ArrayItemSyntax +//@[28:195) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AddonAzureBackupPolicy' +//@[30:64) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:64) StringSyntax +//@[40:64) StringComplete |'AddonAzureBackupPolicy'| +//@[64:65) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:206) ArrayItemSyntax +//@[28:206) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AddonAzureBackupProtectedInstance' +//@[30:75) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:75) StringSyntax +//@[40:75) StringComplete |'AddonAzureBackupProtectedInstance'| +//@[75:76) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:196) ArrayItemSyntax +//@[28:196) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AddonAzureBackupStorage' +//@[30:65) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:65) StringSyntax +//@[40:65) StringComplete |'AddonAzureBackupStorage'| +//@[65:66) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:190) ArrayItemSyntax +//@[28:190) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AzureBackupReport' +//@[30:59) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:59) StringSyntax +//@[40:59) StringComplete |'AzureBackupReport'| +//@[59:60) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:621) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:621) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-RecoveryVault' +//@[6:46) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:46) StringSyntax +//@[12:46) StringComplete |'Deploy-Diagnostics-RecoveryVault'| +//@[46:47) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5769) ArrayItemSyntax +//@[4:5769) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:5713) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:5713) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Redis Cache to stream to a Log Analytics workspace when any Redis Cache which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:268) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:268) StringSyntax +//@[21:268) StringComplete |'Deploys the diagnostic settings for Redis Cache to stream to a Log Analytics workspace when any Redis Cache which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[268:269) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Redis Cache to Log Analytics workspace' +//@[8:92) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:92) StringSyntax +//@[21:92) StringComplete |'Deploy Diagnostic Settings for Redis Cache to Log Analytics workspace'| +//@[92:93) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1472) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1472) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:3736) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:3736) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:97) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:97) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Cache/redis' +//@[12:43) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:43) StringSyntax +//@[20:43) StringComplete |'Microsoft.Cache/redis'| +//@[43:44) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:3606) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:3606) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:3529) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:3529) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:432) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:432) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:380) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:380) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:2702) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:2702) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:2658) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:2658) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:1944) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:1944) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:557) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:557) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1112) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1112) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1057) ArrayItemSyntax +//@[22:1057) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Cache/redis/providers/diagnosticSettings' +//@[24:82) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:82) StringSyntax +//@[30:82) StringComplete |'Microsoft.Cache/redis/providers/diagnosticSettings'| +//@[82:83) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:636) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:636) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [] +//@[26:34) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:34) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) RightSquare |]| +//@[34:35) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:627) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:627) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-RedisCache' +//@[6:43) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:43) StringSyntax +//@[12:43) StringComplete |'Deploy-Diagnostics-RedisCache'| +//@[43:44) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:6720) ArrayItemSyntax +//@[4:6720) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:6669) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:6669) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Relay to stream to a Log Analytics workspace when any Relay which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:256) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:256) StringSyntax +//@[21:256) StringComplete |'Deploys the diagnostic settings for Relay to stream to a Log Analytics workspace when any Relay which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[256:257) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Relay to Log Analytics workspace' +//@[8:86) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:86) StringSyntax +//@[21:86) StringComplete |'Deploy Diagnostic Settings for Relay to Log Analytics workspace'| +//@[86:87) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4342) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4342) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:102) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:102) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Relay/namespaces' +//@[12:48) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:48) StringSyntax +//@[20:48) StringComplete |'Microsoft.Relay/namespaces'| +//@[48:49) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4207) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4207) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4130) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4130) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3148) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3148) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3104) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3104) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2272) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2272) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1340) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1340) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1285) ArrayItemSyntax +//@[22:1285) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Relay/namespaces/providers/diagnosticSettings' +//@[24:87) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:87) StringSyntax +//@[30:87) StringComplete |'Microsoft.Relay/namespaces/providers/diagnosticSettings'| +//@[87:88) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:859) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:859) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:257) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:257) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:195) ArrayItemSyntax +//@[28:195) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'HybridConnectionsEvent' +//@[30:64) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:64) StringSyntax +//@[40:64) StringComplete |'HybridConnectionsEvent'| +//@[64:65) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-Relay' +//@[6:38) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:38) StringSyntax +//@[12:38) StringComplete |'Deploy-Diagnostics-Relay'| +//@[38:39) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:6760) ArrayItemSyntax +//@[4:6760) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:6700) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:6700) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Search Services to stream to a Log Analytics workspace when any Search Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:276) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:276) StringSyntax +//@[21:276) StringComplete |'Deploys the diagnostic settings for Search Services to stream to a Log Analytics workspace when any Search Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[276:277) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Search Services to Log Analytics workspace' +//@[8:96) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:96) StringSyntax +//@[21:96) StringComplete |'Deploy Diagnostic Settings for Search Services to Log Analytics workspace'| +//@[96:97) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4343) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4343) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:107) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:107) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Search/searchServices' +//@[12:53) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:53) StringSyntax +//@[20:53) StringComplete |'Microsoft.Search/searchServices'| +//@[53:54) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4203) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4203) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4126) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4126) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3144) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3144) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3100) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3100) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2268) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2268) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1336) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1336) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1281) ArrayItemSyntax +//@[22:1281) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Search/searchServices/providers/diagnosticSettings' +//@[24:92) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:92) StringSyntax +//@[30:92) StringComplete |'Microsoft.Search/searchServices/providers/diagnosticSettings'| +//@[92:93) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:850) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:850) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:248) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:248) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:186) ArrayItemSyntax +//@[28:186) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'OperationLogs' +//@[30:55) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:55) StringSyntax +//@[40:55) StringComplete |'OperationLogs'| +//@[55:56) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-SearchServices' +//@[6:47) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:47) StringSyntax +//@[12:47) StringComplete |'Deploy-Diagnostics-SearchServices'| +//@[47:48) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:6756) ArrayItemSyntax +//@[4:6756) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:6700) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:6700) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for ServiceBus to stream to a Log Analytics workspace when any ServiceBus which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:266) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:266) StringSyntax +//@[21:266) StringComplete |'Deploys the diagnostic settings for ServiceBus to stream to a Log Analytics workspace when any ServiceBus which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[266:267) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Service Bus namespaces to Log Analytics workspace' +//@[8:104) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:104) StringSyntax +//@[21:104) StringComplete |'Deploy Diagnostic Settings for Service Bus namespaces to Log Analytics workspace'| +//@[104:105) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4345) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4345) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:107) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:107) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.ServiceBus/namespaces' +//@[12:53) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:53) StringSyntax +//@[20:53) StringComplete |'Microsoft.ServiceBus/namespaces'| +//@[53:54) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4205) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4205) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4128) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4128) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3146) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3146) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3102) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3102) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2270) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2270) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1338) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1338) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1283) ArrayItemSyntax +//@[22:1283) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.ServiceBus/namespaces/providers/diagnosticSettings' +//@[24:92) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:92) StringSyntax +//@[30:92) StringComplete |'Microsoft.ServiceBus/namespaces/providers/diagnosticSettings'| +//@[92:93) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:852) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:852) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:250) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:250) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:188) ArrayItemSyntax +//@[28:188) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'OperationalLogs' +//@[30:57) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:57) StringSyntax +//@[40:57) StringComplete |'OperationalLogs'| +//@[57:58) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-ServiceBus' +//@[6:43) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:43) StringSyntax +//@[12:43) StringComplete |'Deploy-Diagnostics-ServiceBus'| +//@[43:44) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:6570) ArrayItemSyntax +//@[4:6570) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:6517) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:6517) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for SignalR to stream to a Log Analytics workspace when any SignalR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:260) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:260) StringSyntax +//@[21:260) StringComplete |'Deploys the diagnostic settings for SignalR to stream to a Log Analytics workspace when any SignalR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[260:261) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for SignalR to Log Analytics workspace' +//@[8:88) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:88) StringSyntax +//@[21:88) StringComplete |'Deploy Diagnostic Settings for SignalR to Log Analytics workspace'| +//@[88:89) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4184) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4184) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:108) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:108) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.SignalRService/SignalR' +//@[12:54) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:54) StringSyntax +//@[20:54) StringComplete |'Microsoft.SignalRService/SignalR'| +//@[54:55) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4043) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4043) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:3966) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:3966) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:432) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:432) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:380) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:380) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3139) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3139) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3095) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3095) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2263) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2263) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1331) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1331) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1276) ArrayItemSyntax +//@[22:1276) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.SignalRService/SignalR/providers/diagnosticSettings' +//@[24:93) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:93) StringSyntax +//@[30:93) StringComplete |'Microsoft.SignalRService/SignalR/providers/diagnosticSettings'| +//@[93:94) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:844) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:844) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:242) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:242) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:180) ArrayItemSyntax +//@[28:180) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllLogs' +//@[30:49) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:49) StringSyntax +//@[40:49) StringComplete |'AllLogs'| +//@[49:50) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-SignalR' +//@[6:40) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:40) StringSyntax +//@[12:40) StringComplete |'Deploy-Diagnostics-SignalR'| +//@[40:41) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:4428) ArrayItemSyntax +//@[4:4428) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:4374) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:4374) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploy auditing settings to SQL Database when it not exist in the deployment' +//@[8:99) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:99) StringSyntax +//@[21:99) StringComplete |'Deploy auditing settings to SQL Database when it not exist in the deployment'| +//@[99:100) NewLine |\n| + DisplayName: 'Deploy SQL database auditing settings' +//@[8:60) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:60) StringSyntax +//@[21:60) StringComplete |'Deploy SQL database auditing settings'| +//@[60:61) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:387) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:387) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:82) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:82) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'SQL' +//@[10:25) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:25) StringSyntax +//@[20:25) StringComplete |'SQL'| +//@[25:26) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:3690) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:3690) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:107) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:107) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Sql/servers/databases' +//@[12:53) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:53) StringSyntax +//@[20:53) StringComplete |'Microsoft.Sql/servers/databases'| +//@[53:54) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:3550) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:3550) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:3473) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:3473) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Sql/servers/databases/auditingSettings' +//@[14:70) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:70) StringSyntax +//@[20:70) StringComplete |'Microsoft.Sql/servers/databases/auditingSettings'| +//@[70:71) NewLine |\n| + name: 'default' +//@[14:29) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:29) StringSyntax +//@[20:29) StringComplete |'default'| +//@[29:30) NewLine |\n| + existenceCondition: { +//@[14:437) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:437) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:385) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:385) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:161) ArrayItemSyntax +//@[18:161) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Sql/servers/databases/auditingSettings/state' +//@[20:83) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:83) StringSyntax +//@[27:83) StringComplete |'Microsoft.Sql/servers/databases/auditingSettings/state'| +//@[83:84) NewLine |\n| + equals: 'enabled' +//@[20:37) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:37) StringSyntax +//@[28:37) StringComplete |'enabled'| +//@[37:38) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:180) ArrayItemSyntax +//@[18:180) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Sql/servers/databases/auditingSettings/isAzureMonitorTargetEnabled' +//@[20:105) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Microsoft.Sql/servers/databases/auditingSettings/isAzureMonitorTargetEnabled'| +//@[105:106) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + deployment: { +//@[14:2740) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:2740) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:2696) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:2696) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2203) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2203) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:364) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:364) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + sqlServerName: { +//@[22:101) ObjectPropertySyntax +//@[22:35) IdentifierSyntax +//@[22:35) Identifier |sqlServerName| +//@[35:36) Colon |:| +//@[37:101) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + sqlServerDataBaseName: { +//@[22:109) ObjectPropertySyntax +//@[22:43) IdentifierSyntax +//@[22:43) Identifier |sqlServerDataBaseName| +//@[43:44) Colon |:| +//@[45:109) ObjectSyntax +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1564) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1564) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1509) ArrayItemSyntax +//@[22:1509) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + name: '[concat( parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/default\')]' +//@[24:129) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:129) StringSyntax +//@[30:129) StringComplete |'[concat( parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/default\')]'| +//@[129:130) NewLine |\n| + type: 'Microsoft.Sql/servers/databases/auditingSettings' +//@[24:80) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:80) StringSyntax +//@[30:80) StringComplete |'Microsoft.Sql/servers/databases/auditingSettings'| +//@[80:81) NewLine |\n| + apiVersion: '2017-03-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-03-01-preview'| +//@[56:57) NewLine |\n| + properties: { +//@[24:1193) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1193) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + state: 'enabled' +//@[26:42) ObjectPropertySyntax +//@[26:31) IdentifierSyntax +//@[26:31) Identifier |state| +//@[31:32) Colon |:| +//@[33:42) StringSyntax +//@[33:42) StringComplete |'enabled'| +//@[42:43) NewLine |\n| + auditActionsAndGroups: [ +//@[26:1026) ObjectPropertySyntax +//@[26:47) IdentifierSyntax +//@[26:47) Identifier |auditActionsAndGroups| +//@[47:48) Colon |:| +//@[49:1026) ArraySyntax +//@[49:50) LeftSquare |[| +//@[50:51) NewLine |\n| + 'BATCH_COMPLETED_GROUP' +//@[28:51) ArrayItemSyntax +//@[28:51) StringSyntax +//@[28:51) StringComplete |'BATCH_COMPLETED_GROUP'| +//@[51:52) NewLine |\n| + 'DATABASE_OBJECT_CHANGE_GROUP' +//@[28:58) ArrayItemSyntax +//@[28:58) StringSyntax +//@[28:58) StringComplete |'DATABASE_OBJECT_CHANGE_GROUP'| +//@[58:59) NewLine |\n| + 'SCHEMA_OBJECT_CHANGE_GROUP' +//@[28:56) ArrayItemSyntax +//@[28:56) StringSyntax +//@[28:56) StringComplete |'SCHEMA_OBJECT_CHANGE_GROUP'| +//@[56:57) NewLine |\n| + 'BACKUP_RESTORE_GROUP' +//@[28:50) ArrayItemSyntax +//@[28:50) StringSyntax +//@[28:50) StringComplete |'BACKUP_RESTORE_GROUP'| +//@[50:51) NewLine |\n| + 'APPLICATION_ROLE_CHANGE_PASSWORD_GROUP' +//@[28:68) ArrayItemSyntax +//@[28:68) StringSyntax +//@[28:68) StringComplete |'APPLICATION_ROLE_CHANGE_PASSWORD_GROUP'| +//@[68:69) NewLine |\n| + 'DATABASE_PRINCIPAL_CHANGE_GROUP' +//@[28:61) ArrayItemSyntax +//@[28:61) StringSyntax +//@[28:61) StringComplete |'DATABASE_PRINCIPAL_CHANGE_GROUP'| +//@[61:62) NewLine |\n| + 'DATABASE_PRINCIPAL_IMPERSONATION_GROUP' +//@[28:68) ArrayItemSyntax +//@[28:68) StringSyntax +//@[28:68) StringComplete |'DATABASE_PRINCIPAL_IMPERSONATION_GROUP'| +//@[68:69) NewLine |\n| + 'DATABASE_ROLE_MEMBER_CHANGE_GROUP' +//@[28:63) ArrayItemSyntax +//@[28:63) StringSyntax +//@[28:63) StringComplete |'DATABASE_ROLE_MEMBER_CHANGE_GROUP'| +//@[63:64) NewLine |\n| + 'USER_CHANGE_PASSWORD_GROUP' +//@[28:56) ArrayItemSyntax +//@[28:56) StringSyntax +//@[28:56) StringComplete |'USER_CHANGE_PASSWORD_GROUP'| +//@[56:57) NewLine |\n| + 'DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP' +//@[28:68) ArrayItemSyntax +//@[28:68) StringSyntax +//@[28:68) StringComplete |'DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP'| +//@[68:69) NewLine |\n| + 'DATABASE_OBJECT_PERMISSION_CHANGE_GROUP' +//@[28:69) ArrayItemSyntax +//@[28:69) StringSyntax +//@[28:69) StringComplete |'DATABASE_OBJECT_PERMISSION_CHANGE_GROUP'| +//@[69:70) NewLine |\n| + 'DATABASE_PERMISSION_CHANGE_GROUP' +//@[28:62) ArrayItemSyntax +//@[28:62) StringSyntax +//@[28:62) StringComplete |'DATABASE_PERMISSION_CHANGE_GROUP'| +//@[62:63) NewLine |\n| + 'SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP' +//@[28:67) ArrayItemSyntax +//@[28:67) StringSyntax +//@[28:67) StringComplete |'SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP'| +//@[67:68) NewLine |\n| + 'SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP' +//@[28:70) ArrayItemSyntax +//@[28:70) StringSyntax +//@[28:70) StringComplete |'SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP'| +//@[70:71) NewLine |\n| + 'FAILED_DATABASE_AUTHENTICATION_GROUP' +//@[28:66) ArrayItemSyntax +//@[28:66) StringSyntax +//@[28:66) StringComplete |'FAILED_DATABASE_AUTHENTICATION_GROUP'| +//@[66:67) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + isAzureMonitorTargetEnabled: true +//@[26:59) ObjectPropertySyntax +//@[26:53) IdentifierSyntax +//@[26:53) Identifier |isAzureMonitorTargetEnabled| +//@[53:54) Colon |:| +//@[55:59) BooleanLiteralSyntax +//@[55:59) TrueKeyword |true| +//@[59:60) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:406) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:406) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + sqlServerName: { +//@[20:131) ObjectPropertySyntax +//@[20:33) IdentifierSyntax +//@[20:33) Identifier |sqlServerName| +//@[33:34) Colon |:| +//@[35:131) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + value: '[first(split(field(\'fullname\'),\'/\'))]' +//@[22:72) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:72) StringSyntax +//@[29:72) StringComplete |'[first(split(field(\'fullname\'),\'/\'))]'| +//@[72:73) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + sqlServerDataBaseName: { +//@[20:115) ObjectPropertySyntax +//@[20:41) IdentifierSyntax +//@[20:41) Identifier |sqlServerDataBaseName| +//@[41:42) Colon |:| +//@[43:115) ObjectSyntax +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:156) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:156) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Sql-AuditingSettings' +//@[6:41) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:41) StringSyntax +//@[12:41) StringComplete |'Deploy-Sql-AuditingSettings'| +//@[41:42) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:3134) ArrayItemSyntax +//@[4:3134) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:3093) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:3093) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploy the Transparent Data Encryption when it is not enabled in the deployment' +//@[8:102) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:102) StringSyntax +//@[21:102) StringComplete |'Deploy the Transparent Data Encryption when it is not enabled in the deployment'| +//@[102:103) NewLine |\n| + DisplayName: 'Deploy SQL Database Transparent Data Encryption ' +//@[8:71) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:71) StringSyntax +//@[21:71) StringComplete |'Deploy SQL Database Transparent Data Encryption '| +//@[71:72) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:387) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:387) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:82) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:82) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'SQL' +//@[10:25) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:25) StringSyntax +//@[20:25) StringComplete |'SQL'| +//@[25:26) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:2395) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:2395) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:107) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:107) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Sql/servers/databases' +//@[12:53) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:53) StringSyntax +//@[20:53) StringComplete |'Microsoft.Sql/servers/databases'| +//@[53:54) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:2255) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:2255) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:2178) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:2178) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Sql/servers/databases/transparentDataEncryption' +//@[14:79) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:79) StringSyntax +//@[20:79) StringComplete |'Microsoft.Sql/servers/databases/transparentDataEncryption'| +//@[79:80) NewLine |\n| + existenceCondition: { +//@[14:248) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:248) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:196) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:196) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:153) ArrayItemSyntax +//@[18:153) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Sql/transparentDataEncryption.status' +//@[20:75) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:75) StringSyntax +//@[27:75) StringComplete |'Microsoft.Sql/transparentDataEncryption.status'| +//@[75:76) NewLine |\n| + equals: 'Enabled' +//@[20:37) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:37) StringSyntax +//@[28:37) StringComplete |'Enabled'| +//@[37:38) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + deployment: { +//@[14:1655) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:1655) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:1611) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:1611) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:1118) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:1118) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:364) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:364) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + sqlServerName: { +//@[22:101) ObjectPropertySyntax +//@[22:35) IdentifierSyntax +//@[22:35) Identifier |sqlServerName| +//@[35:36) Colon |:| +//@[37:101) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + sqlServerDataBaseName: { +//@[22:109) ObjectPropertySyntax +//@[22:43) IdentifierSyntax +//@[22:43) Identifier |sqlServerDataBaseName| +//@[43:44) Colon |:| +//@[45:109) ObjectSyntax +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:479) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:479) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:424) ArrayItemSyntax +//@[22:424) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + name: '[concat( parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/current\')]' +//@[24:129) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:129) StringSyntax +//@[30:129) StringComplete |'[concat( parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/current\')]'| +//@[129:130) NewLine |\n| + type: 'Microsoft.Sql/servers/databases/transparentDataEncryption' +//@[24:89) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:89) StringSyntax +//@[30:89) StringComplete |'Microsoft.Sql/servers/databases/transparentDataEncryption'| +//@[89:90) NewLine |\n| + apiVersion: '2014-04-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2014-04-01'| +//@[48:49) NewLine |\n| + properties: { +//@[24:107) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:107) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + status: 'Enabled' +//@[26:43) ObjectPropertySyntax +//@[26:32) IdentifierSyntax +//@[26:32) Identifier |status| +//@[32:33) Colon |:| +//@[34:43) StringSyntax +//@[34:43) StringComplete |'Enabled'| +//@[43:44) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:406) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:406) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + sqlServerName: { +//@[20:131) ObjectPropertySyntax +//@[20:33) IdentifierSyntax +//@[20:33) Identifier |sqlServerName| +//@[33:34) Colon |:| +//@[35:131) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + value: '[first(split(field(\'fullname\'),\'/\'))]' +//@[22:72) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:72) StringSyntax +//@[29:72) StringComplete |'[first(split(field(\'fullname\'),\'/\'))]'| +//@[72:73) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + sqlServerDataBaseName: { +//@[20:115) ObjectPropertySyntax +//@[20:41) IdentifierSyntax +//@[20:41) Identifier |sqlServerDataBaseName| +//@[41:42) Colon |:| +//@[43:115) ObjectSyntax +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:156) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:156) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Sql-Tde' +//@[6:28) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:28) StringSyntax +//@[12:28) StringComplete |'Deploy-Sql-Tde'| +//@[28:29) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:3655) ArrayItemSyntax +//@[4:3655) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:3596) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:3596) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploy the security Alert Policies configuration with email admin accounts when it not exist in current configuration' +//@[8:140) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:140) StringSyntax +//@[21:140) StringComplete |'Deploy the security Alert Policies configuration with email admin accounts when it not exist in current configuration'| +//@[140:141) NewLine |\n| + DisplayName: 'Deploy SQL Database security Alert Policies configuration with email admin accounts' +//@[8:106) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:106) StringSyntax +//@[21:106) StringComplete |'Deploy SQL Database security Alert Policies configuration with email admin accounts'| +//@[106:107) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:387) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:387) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:82) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:82) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'SQL' +//@[10:25) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:25) StringSyntax +//@[20:25) StringComplete |'SQL'| +//@[25:26) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:2825) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:2825) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:107) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:107) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Sql/servers/databases' +//@[12:53) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:53) StringSyntax +//@[20:53) StringComplete |'Microsoft.Sql/servers/databases'| +//@[53:54) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:2685) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:2685) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:2608) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:2608) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Sql/servers/databases/securityAlertPolicies' +//@[14:75) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:75) StringSyntax +//@[20:75) StringComplete |'Microsoft.Sql/servers/databases/securityAlertPolicies'| +//@[75:76) NewLine |\n| + existenceCondition: { +//@[14:261) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:261) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:209) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:209) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:166) ArrayItemSyntax +//@[18:166) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Sql/servers/databases/securityAlertPolicies/state' +//@[20:88) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:88) StringSyntax +//@[27:88) StringComplete |'Microsoft.Sql/servers/databases/securityAlertPolicies/state'| +//@[88:89) NewLine |\n| + equals: 'Enabled' +//@[20:37) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:37) StringSyntax +//@[28:37) StringComplete |'Enabled'| +//@[37:38) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + deployment: { +//@[14:2076) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:2076) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:2032) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:2032) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:1539) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:1539) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:364) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:364) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + sqlServerName: { +//@[22:101) ObjectPropertySyntax +//@[22:35) IdentifierSyntax +//@[22:35) Identifier |sqlServerName| +//@[35:36) Colon |:| +//@[37:101) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + sqlServerDataBaseName: { +//@[22:109) ObjectPropertySyntax +//@[22:43) IdentifierSyntax +//@[22:43) Identifier |sqlServerDataBaseName| +//@[43:44) Colon |:| +//@[45:109) ObjectSyntax +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:900) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:900) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:845) ArrayItemSyntax +//@[22:845) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + name: '[concat(parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/default\')]' +//@[24:128) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:128) StringSyntax +//@[30:128) StringComplete |'[concat(parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/default\')]'| +//@[128:129) NewLine |\n| + type: 'Microsoft.Sql/servers/databases/securityAlertPolicies' +//@[24:85) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:85) StringSyntax +//@[30:85) StringComplete |'Microsoft.Sql/servers/databases/securityAlertPolicies'| +//@[85:86) NewLine |\n| + apiVersion: '2018-06-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2018-06-01-preview'| +//@[56:57) NewLine |\n| + properties: { +//@[24:525) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:525) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + state: 'Enabled' +//@[26:42) ObjectPropertySyntax +//@[26:31) IdentifierSyntax +//@[26:31) Identifier |state| +//@[31:32) Colon |:| +//@[33:42) StringSyntax +//@[33:42) StringComplete |'Enabled'| +//@[42:43) NewLine |\n| + disabledAlerts: [ +//@[26:102) ObjectPropertySyntax +//@[26:40) IdentifierSyntax +//@[26:40) Identifier |disabledAlerts| +//@[40:41) Colon |:| +//@[42:102) ArraySyntax +//@[42:43) LeftSquare |[| +//@[43:44) NewLine |\n| + '' +//@[28:30) ArrayItemSyntax +//@[28:30) StringSyntax +//@[28:30) StringComplete |''| +//@[30:31) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + emailAddresses: [ +//@[26:119) ObjectPropertySyntax +//@[26:40) IdentifierSyntax +//@[26:40) Identifier |emailAddresses| +//@[40:41) Colon |:| +//@[42:119) ArraySyntax +//@[42:43) LeftSquare |[| +//@[43:44) NewLine |\n| + 'admin@contoso.com' +//@[28:47) ArrayItemSyntax +//@[28:47) StringSyntax +//@[28:47) StringComplete |'admin@contoso.com'| +//@[47:48) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + emailAccountAdmins: true +//@[26:50) ObjectPropertySyntax +//@[26:44) IdentifierSyntax +//@[26:44) Identifier |emailAccountAdmins| +//@[44:45) Colon |:| +//@[46:50) BooleanLiteralSyntax +//@[46:50) TrueKeyword |true| +//@[50:51) NewLine |\n| + storageEndpoint: null +//@[26:47) ObjectPropertySyntax +//@[26:41) IdentifierSyntax +//@[26:41) Identifier |storageEndpoint| +//@[41:42) Colon |:| +//@[43:47) NullLiteralSyntax +//@[43:47) NullKeyword |null| +//@[47:48) NewLine |\n| + storageAccountAccessKey: '' +//@[26:53) ObjectPropertySyntax +//@[26:49) IdentifierSyntax +//@[26:49) Identifier |storageAccountAccessKey| +//@[49:50) Colon |:| +//@[51:53) StringSyntax +//@[51:53) StringComplete |''| +//@[53:54) NewLine |\n| + retentionDays: 0 +//@[26:42) ObjectPropertySyntax +//@[26:39) IdentifierSyntax +//@[26:39) Identifier |retentionDays| +//@[39:40) Colon |:| +//@[41:42) IntegerLiteralSyntax +//@[41:42) Integer |0| +//@[42:43) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:406) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:406) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + sqlServerName: { +//@[20:131) ObjectPropertySyntax +//@[20:33) IdentifierSyntax +//@[20:33) Identifier |sqlServerName| +//@[33:34) Colon |:| +//@[35:131) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + value: '[first(split(field(\'fullname\'),\'/\'))]' +//@[22:72) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:72) StringSyntax +//@[29:72) StringComplete |'[first(split(field(\'fullname\'),\'/\'))]'| +//@[72:73) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + sqlServerDataBaseName: { +//@[20:115) ObjectPropertySyntax +//@[20:41) IdentifierSyntax +//@[20:41) Identifier |sqlServerDataBaseName| +//@[41:42) Colon |:| +//@[43:115) ObjectSyntax +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:156) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:156) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Sql-SecurityAlertPolicies' +//@[6:46) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:46) StringSyntax +//@[12:46) StringComplete |'Deploy-Sql-SecurityAlertPolicies'| +//@[46:47) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5311) ArrayItemSyntax +//@[4:5311) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:5249) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:5249) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploy SQL Database vulnerability Assessments when it not exist in the deployment. To the specific storage account in the parameters' +//@[8:156) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:156) StringSyntax +//@[21:156) StringComplete |'Deploy SQL Database vulnerability Assessments when it not exist in the deployment. To the specific storage account in the parameters'| +//@[156:157) NewLine |\n| + DisplayName: 'Deploy SQL Database vulnerability Assessments' +//@[8:68) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:68) StringSyntax +//@[21:68) StringComplete |'Deploy SQL Database vulnerability Assessments'| +//@[68:69) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:895) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:895) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + vulnerabilityAssessmentsEmail: { +//@[10:243) ObjectPropertySyntax +//@[10:39) IdentifierSyntax +//@[10:39) Identifier |vulnerabilityAssessmentsEmail| +//@[39:40) Colon |:| +//@[41:243) ObjectSyntax +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:161) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:161) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + description: 'The email address to send alerts' +//@[14:61) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:61) StringSyntax +//@[27:61) StringComplete |'The email address to send alerts'| +//@[61:62) NewLine |\n| + displayName: 'The email address to send alerts' +//@[14:61) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:61) StringSyntax +//@[27:61) StringComplete |'The email address to send alerts'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + vulnerabilityAssessmentsStorageID: { +//@[10:263) ObjectPropertySyntax +//@[10:43) IdentifierSyntax +//@[10:43) Identifier |vulnerabilityAssessmentsStorageID| +//@[43:44) Colon |:| +//@[45:263) ObjectSyntax +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:177) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:177) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + description: 'The storage account to store assessments' +//@[14:69) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:69) StringSyntax +//@[27:69) StringComplete |'The storage account to store assessments'| +//@[69:70) NewLine |\n| + displayName: 'The storage account to store assessments' +//@[14:69) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:69) StringSyntax +//@[27:69) StringComplete |'The storage account to store assessments'| +//@[69:70) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:82) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:82) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'SQL' +//@[10:25) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:25) StringSyntax +//@[20:25) StringComplete |'SQL'| +//@[25:26) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:3992) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:3992) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:107) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:107) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Sql/servers/databases' +//@[12:53) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:53) StringSyntax +//@[20:53) StringComplete |'Microsoft.Sql/servers/databases'| +//@[53:54) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:3852) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:3852) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:3775) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:3775) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Sql/servers/databases/vulnerabilityAssessments' +//@[14:78) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:78) StringSyntax +//@[20:78) StringComplete |'Microsoft.Sql/servers/databases/vulnerabilityAssessments'| +//@[78:79) NewLine |\n| + existenceCondition: { +//@[14:504) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:504) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:452) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:452) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:225) ArrayItemSyntax +//@[18:225) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Sql/servers/databases/vulnerabilityAssessments/recurringScans.emails' +//@[20:107) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:107) StringSyntax +//@[27:107) StringComplete |'Microsoft.Sql/servers/databases/vulnerabilityAssessments/recurringScans.emails'| +//@[107:108) NewLine |\n| + equals: '[parameters(\'vulnerabilityAssessmentsEmail\')]' +//@[20:77) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:77) StringSyntax +//@[28:77) StringComplete |'[parameters(\'vulnerabilityAssessmentsEmail\')]'| +//@[77:78) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:183) ArrayItemSyntax +//@[18:183) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Sql/servers/databases/vulnerabilityAssessments/recurringScans.isEnabled' +//@[20:110) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:110) StringSyntax +//@[27:110) StringComplete |'Microsoft.Sql/servers/databases/vulnerabilityAssessments/recurringScans.isEnabled'| +//@[110:111) NewLine |\n| + equals: true +//@[20:32) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:32) BooleanLiteralSyntax +//@[28:32) TrueKeyword |true| +//@[32:33) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + deployment: { +//@[14:2891) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:2891) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:2847) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:2847) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2038) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2038) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:604) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:604) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + sqlServerName: { +//@[22:101) ObjectPropertySyntax +//@[22:35) IdentifierSyntax +//@[22:35) Identifier |sqlServerName| +//@[35:36) Colon |:| +//@[37:101) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + sqlServerDataBaseName: { +//@[22:109) ObjectPropertySyntax +//@[22:43) IdentifierSyntax +//@[22:43) Identifier |sqlServerDataBaseName| +//@[43:44) Colon |:| +//@[45:109) ObjectSyntax +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + vulnerabilityAssessmentsEmail: { +//@[22:117) ObjectPropertySyntax +//@[22:51) IdentifierSyntax +//@[22:51) Identifier |vulnerabilityAssessmentsEmail| +//@[51:52) Colon |:| +//@[53:117) ObjectSyntax +//@[53:54) LeftBrace |{| +//@[54:55) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + vulnerabilityAssessmentsStorageID: { +//@[22:121) ObjectPropertySyntax +//@[22:55) IdentifierSyntax +//@[22:55) Identifier |vulnerabilityAssessmentsStorageID| +//@[55:56) Colon |:| +//@[57:121) ObjectSyntax +//@[57:58) LeftBrace |{| +//@[58:59) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1159) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1159) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1104) ArrayItemSyntax +//@[22:1104) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + name: '[concat(parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/default\')]' +//@[24:128) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:128) StringSyntax +//@[30:128) StringComplete |'[concat(parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/default\')]'| +//@[128:129) NewLine |\n| + type: 'Microsoft.Sql/servers/databases/vulnerabilityAssessments' +//@[24:88) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:88) StringSyntax +//@[30:88) StringComplete |'Microsoft.Sql/servers/databases/vulnerabilityAssessments'| +//@[88:89) NewLine |\n| + apiVersion: '2017-03-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-03-01-preview'| +//@[56:57) NewLine |\n| + properties: { +//@[24:781) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:781) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + storageContainerPath: '[concat(\'https://\', last( split(parameters(\'vulnerabilityAssessmentsStorageID\') , \'/\') ) , \'.blob.core.windows.net/vulneraabilitylogs\')]' +//@[26:195) ObjectPropertySyntax +//@[26:46) IdentifierSyntax +//@[26:46) Identifier |storageContainerPath| +//@[46:47) Colon |:| +//@[48:195) StringSyntax +//@[48:195) StringComplete |'[concat(\'https://\', last( split(parameters(\'vulnerabilityAssessmentsStorageID\') , \'/\') ) , \'.blob.core.windows.net/vulneraabilitylogs\')]'| +//@[195:196) NewLine |\n| + storageAccountAccessKey: '[listkeys(parameters(\'vulnerabilityAssessmentsStorageID\'), providers(\'Microsoft.Storage\', \'storageAccounts\').apiVersions[0]).keys[0].value]' +//@[26:198) ObjectPropertySyntax +//@[26:49) IdentifierSyntax +//@[26:49) Identifier |storageAccountAccessKey| +//@[49:50) Colon |:| +//@[51:198) StringSyntax +//@[51:198) StringComplete |'[listkeys(parameters(\'vulnerabilityAssessmentsStorageID\'), providers(\'Microsoft.Storage\', \'storageAccounts\').apiVersions[0]).keys[0].value]'| +//@[198:199) NewLine |\n| + recurringScans: { +//@[26:322) ObjectPropertySyntax +//@[26:40) IdentifierSyntax +//@[26:40) Identifier |recurringScans| +//@[40:41) Colon |:| +//@[42:322) ObjectSyntax +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + isEnabled: true +//@[28:43) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |isEnabled| +//@[37:38) Colon |:| +//@[39:43) BooleanLiteralSyntax +//@[39:43) TrueKeyword |true| +//@[43:44) NewLine |\n| + emailSubscriptionAdmins: false +//@[28:58) ObjectPropertySyntax +//@[28:51) IdentifierSyntax +//@[28:51) Identifier |emailSubscriptionAdmins| +//@[51:52) Colon |:| +//@[53:58) BooleanLiteralSyntax +//@[53:58) FalseKeyword |false| +//@[58:59) NewLine |\n| + emails: [ +//@[28:147) ObjectPropertySyntax +//@[28:34) IdentifierSyntax +//@[28:34) Identifier |emails| +//@[34:35) Colon |:| +//@[36:147) ArraySyntax +//@[36:37) LeftSquare |[| +//@[37:38) NewLine |\n| + '[parameters(\'vulnerabilityAssessmentsEmail\')]' +//@[30:79) ArrayItemSyntax +//@[30:79) StringSyntax +//@[30:79) StringComplete |'[parameters(\'vulnerabilityAssessmentsEmail\')]'| +//@[79:80) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:722) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:722) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + sqlServerName: { +//@[20:131) ObjectPropertySyntax +//@[20:33) IdentifierSyntax +//@[20:33) Identifier |sqlServerName| +//@[33:34) Colon |:| +//@[35:131) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + value: '[first(split(field(\'fullname\'),\'/\'))]' +//@[22:72) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:72) StringSyntax +//@[29:72) StringComplete |'[first(split(field(\'fullname\'),\'/\'))]'| +//@[72:73) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + sqlServerDataBaseName: { +//@[20:115) ObjectPropertySyntax +//@[20:41) IdentifierSyntax +//@[20:41) Identifier |sqlServerDataBaseName| +//@[41:42) Colon |:| +//@[43:115) ObjectSyntax +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + vulnerabilityAssessmentsEmail: { +//@[20:153) ObjectPropertySyntax +//@[20:49) IdentifierSyntax +//@[20:49) Identifier |vulnerabilityAssessmentsEmail| +//@[49:50) Colon |:| +//@[51:153) ObjectSyntax +//@[51:52) LeftBrace |{| +//@[52:53) NewLine |\n| + value: '[parameters(\'vulnerabilityAssessmentsEmail\')]' +//@[22:78) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:78) StringSyntax +//@[29:78) StringComplete |'[parameters(\'vulnerabilityAssessmentsEmail\')]'| +//@[78:79) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + vulnerabilityAssessmentsStorageID: { +//@[20:161) ObjectPropertySyntax +//@[20:53) IdentifierSyntax +//@[20:53) Identifier |vulnerabilityAssessmentsStorageID| +//@[53:54) Colon |:| +//@[55:161) ObjectSyntax +//@[55:56) LeftBrace |{| +//@[56:57) NewLine |\n| + value: '[parameters(\'vulnerabilityAssessmentsStorageID\')]' +//@[22:82) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:82) StringSyntax +//@[29:82) StringComplete |'[parameters(\'vulnerabilityAssessmentsStorageID\')]'| +//@[82:83) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3'| +//@[105:106) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Sql-vulnerabilityAssessments' +//@[6:49) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:49) StringSyntax +//@[12:49) StringComplete |'Deploy-Sql-vulnerabilityAssessments'| +//@[49:50) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:8650) ArrayItemSyntax +//@[4:8650) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:8598) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:8598) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for SQL Databases to stream to a Log Analytics workspace when any SQL Databases which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:273) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:273) StringSyntax +//@[21:273) StringComplete |'Deploys the diagnostic settings for SQL Databases to stream to a Log Analytics workspace when any SQL Databases which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[273:274) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for SQL Databases to Log Analytics workspace' +//@[8:95) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:95) StringSyntax +//@[21:95) StringComplete |'Deploy Diagnostic Settings for SQL Databases to Log Analytics workspace'| +//@[95:96) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:6245) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:6245) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:107) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:107) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Sql/servers/databases' +//@[12:53) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:53) StringSyntax +//@[20:53) StringComplete |'Microsoft.Sql/servers/databases'| +//@[53:54) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:6105) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:6105) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:6028) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:6028) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:5046) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:5046) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:5002) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:5002) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:4166) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:4166) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:3234) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:3234) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:3179) ArrayItemSyntax +//@[22:3179) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Sql/servers/databases/providers/diagnosticSettings' +//@[24:92) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:92) StringSyntax +//@[30:92) StringComplete |'Microsoft.Sql/servers/databases/providers/diagnosticSettings'| +//@[92:93) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:2748) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:2748) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:2146) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:2146) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:184) ArrayItemSyntax +//@[28:184) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'SQLInsights' +//@[30:53) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:53) StringSyntax +//@[40:53) StringComplete |'SQLInsights'| +//@[53:54) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:188) ArrayItemSyntax +//@[28:188) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AutomaticTuning' +//@[30:57) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:57) StringSyntax +//@[40:57) StringComplete |'AutomaticTuning'| +//@[57:58) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:194) ArrayItemSyntax +//@[28:194) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DevOpsOperationsAudit' +//@[30:63) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:63) StringSyntax +//@[40:63) StringComplete |'DevOpsOperationsAudit'| +//@[63:64) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:200) ArrayItemSyntax +//@[28:200) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'QueryStoreRuntimeStatistics' +//@[30:69) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:69) StringSyntax +//@[40:69) StringComplete |'QueryStoreRuntimeStatistics'| +//@[69:70) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:197) ArrayItemSyntax +//@[28:197) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'QueryStoreWaitStatistics' +//@[30:66) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:66) StringSyntax +//@[40:66) StringComplete |'QueryStoreWaitStatistics'| +//@[66:67) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:179) ArrayItemSyntax +//@[28:179) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Errors' +//@[30:48) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:48) StringSyntax +//@[40:48) StringComplete |'Errors'| +//@[48:49) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:195) ArrayItemSyntax +//@[28:195) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DatabaseWaitStatistics' +//@[30:64) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:64) StringSyntax +//@[40:64) StringComplete |'DatabaseWaitStatistics'| +//@[64:65) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:181) ArrayItemSyntax +//@[28:181) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Timeouts' +//@[30:50) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:50) StringSyntax +//@[40:50) StringComplete |'Timeouts'| +//@[50:51) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:179) ArrayItemSyntax +//@[28:179) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Blocks' +//@[30:48) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:48) StringSyntax +//@[40:48) StringComplete |'Blocks'| +//@[48:49) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:182) ArrayItemSyntax +//@[28:182) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Deadlocks' +//@[30:51) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:51) StringSyntax +//@[40:51) StringComplete |'Deadlocks'| +//@[51:52) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:195) ArrayItemSyntax +//@[28:195) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'SQLSecurityAuditEvents' +//@[30:64) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:64) StringSyntax +//@[40:64) StringComplete |'SQLSecurityAuditEvents'| +//@[64:65) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:749) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:749) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:110) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:110) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'fullName\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'fullName\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-SQLDBs' +//@[6:39) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:39) StringSyntax +//@[12:39) StringComplete |'Deploy-Diagnostics-SQLDBs'| +//@[39:40) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5822) ArrayItemSyntax +//@[4:5822) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:5761) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:5761) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for SQL Elastic Pools to stream to a Log Analytics workspace when any SQL Elastic Pools which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:280) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:280) StringSyntax +//@[21:280) StringComplete |'Deploys the diagnostic settings for SQL Elastic Pools to stream to a Log Analytics workspace when any SQL Elastic Pools which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[280:281) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for SQL Elastic Pools to Log Analytics workspace' +//@[8:98) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:98) StringSyntax +//@[21:98) StringComplete |'Deploy Diagnostic Settings for SQL Elastic Pools to Log Analytics workspace'| +//@[98:99) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1472) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1472) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:3766) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:3766) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:110) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:110) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Sql/servers/elasticPools' +//@[12:56) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:56) StringSyntax +//@[20:56) StringComplete |'Microsoft.Sql/servers/elasticPools'| +//@[56:57) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:3623) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:3623) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:3546) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:3546) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:432) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:432) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:380) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:380) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:2719) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:2719) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:2675) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:2675) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:1957) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:1957) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:557) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:557) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1125) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1125) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1070) ArrayItemSyntax +//@[22:1070) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Sql/servers/elasticPools/providers/diagnosticSettings' +//@[24:95) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:95) StringSyntax +//@[30:95) StringComplete |'Microsoft.Sql/servers/elasticPools/providers/diagnosticSettings'| +//@[95:96) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:636) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:636) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [] +//@[26:34) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:34) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) RightSquare |]| +//@[34:35) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:631) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:631) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:110) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:110) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'fullName\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'fullName\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-SQLElasticPools' +//@[6:48) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:48) StringSyntax +//@[12:48) StringComplete |'Deploy-Diagnostics-SQLElasticPools'| +//@[48:49) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5935) ArrayItemSyntax +//@[4:5935) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:5884) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:5884) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for SQL Managed Instances to stream to a Log Analytics workspace when any SQL Managed Instances which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:288) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:288) StringSyntax +//@[21:288) StringComplete |'Deploys the diagnostic settings for SQL Managed Instances to stream to a Log Analytics workspace when any SQL Managed Instances which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[288:289) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for SQL Managed Instances to Log Analytics workspace' +//@[8:102) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:102) StringSyntax +//@[21:102) StringComplete |'Deploy Diagnostic Settings for SQL Managed Instances to Log Analytics workspace'| +//@[102:103) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1463) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1463) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:3886) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:3886) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:106) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:106) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Sql/managedInstances' +//@[12:52) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:52) StringSyntax +//@[20:52) StringComplete |'Microsoft.Sql/managedInstances'| +//@[52:53) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:3747) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:3747) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:3670) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:3670) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:429) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:429) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:377) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:377) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:2846) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:2846) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:2802) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:2802) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2094) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2094) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:554) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:554) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1265) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1265) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1210) ArrayItemSyntax +//@[22:1210) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Sql/managedInstances/providers/diagnosticSettings' +//@[24:91) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:91) StringSyntax +//@[30:91) StringComplete |'Microsoft.Sql/managedInstances/providers/diagnosticSettings'| +//@[91:92) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:780) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:780) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + logs: [ +//@[26:644) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:644) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:191) ArrayItemSyntax +//@[28:191) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ResourceUsageStats' +//@[30:60) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:60) StringSyntax +//@[40:60) StringComplete |'ResourceUsageStats'| +//@[60:61) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:195) ArrayItemSyntax +//@[28:195) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'SQLSecurityAuditEvents' +//@[30:64) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:64) StringSyntax +//@[40:64) StringComplete |'SQLSecurityAuditEvents'| +//@[64:65) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:194) ArrayItemSyntax +//@[28:194) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DevOpsOperationsAudit' +//@[30:63) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:63) StringSyntax +//@[40:63) StringComplete |'DevOpsOperationsAudit'| +//@[63:64) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:621) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:621) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-SQLMI' +//@[6:38) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:38) StringSyntax +//@[12:38) StringComplete |'Deploy-Diagnostics-SQLMI'| +//@[38:39) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:1169) ArrayItemSyntax +//@[4:1169) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:1119) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:1119) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies creation of Sql servers with exposed public endpoints' +//@[8:95) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:95) StringSyntax +//@[21:95) StringComplete |'This policy denies creation of Sql servers with exposed public endpoints'| +//@[95:96) NewLine |\n| + DisplayName: 'Public network access on Azure SQL Database should be disabled' +//@[8:85) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:85) StringSyntax +//@[21:85) StringComplete |'Public network access on Azure SQL Database should be disabled'| +//@[85:86) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:383) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:383) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:351) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:351) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:110) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:110) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:82) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:82) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'SQL' +//@[10:25) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:25) StringSyntax +//@[20:25) StringComplete |'SQL'| +//@[25:26) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:418) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:418) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:309) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:309) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:281) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:281) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:109) ArrayItemSyntax +//@[14:109) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Sql/servers' +//@[16:47) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:47) StringSyntax +//@[24:47) StringComplete |'Microsoft.Sql/servers'| +//@[47:48) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:136) ArrayItemSyntax +//@[14:136) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.Sql/servers/publicNetworkAccess' +//@[16:66) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:66) StringSyntax +//@[23:66) StringComplete |'Microsoft.Sql/servers/publicNetworkAccess'| +//@[66:67) NewLine |\n| + notequals: 'Disabled' +//@[16:37) ObjectPropertySyntax +//@[16:25) IdentifierSyntax +//@[16:25) Identifier |notequals| +//@[25:26) Colon |:| +//@[27:37) StringSyntax +//@[27:37) StringComplete |'Disabled'| +//@[37:38) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:76) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:76) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-PublicEndpoint-Sql' +//@[6:37) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:37) StringSyntax +//@[12:37) StringComplete |'Deny-PublicEndpoint-Sql'| +//@[37:38) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:1224) ArrayItemSyntax +//@[4:1224) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:1170) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:1170) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies creation of storage accounts with IP Firewall exposed to all public endpoints' +//@[8:119) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:119) StringSyntax +//@[21:119) StringComplete |'This policy denies creation of storage accounts with IP Firewall exposed to all public endpoints'| +//@[119:120) NewLine |\n| + DisplayName: 'Public network access onStorage accounts should be disabled' +//@[8:82) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:82) StringSyntax +//@[21:82) StringComplete |'Public network access onStorage accounts should be disabled'| +//@[82:83) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:383) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:383) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:351) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:351) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:110) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:110) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:86) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:86) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Storage' +//@[10:29) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringSyntax +//@[20:29) StringComplete |'Storage'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:444) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:444) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:335) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:335) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:307) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:307) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:121) ArrayItemSyntax +//@[14:121) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Storage/storageAccounts' +//@[16:59) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringSyntax +//@[24:59) StringComplete |'Microsoft.Storage/storageAccounts'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:150) ArrayItemSyntax +//@[14:150) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.Storage/storageAccounts/networkAcls.defaultAction' +//@[16:84) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:84) StringSyntax +//@[23:84) StringComplete |'Microsoft.Storage/storageAccounts/networkAcls.defaultAction'| +//@[84:85) NewLine |\n| + notequals: 'Deny' +//@[16:33) ObjectPropertySyntax +//@[16:25) IdentifierSyntax +//@[16:25) Identifier |notequals| +//@[25:26) Colon |:| +//@[27:33) StringSyntax +//@[27:33) StringComplete |'Deny'| +//@[33:34) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:76) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:76) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-PublicEndpoint-Storage' +//@[6:41) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:41) StringSyntax +//@[12:41) StringComplete |'Deny-PublicEndpoint-Storage'| +//@[41:42) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:6959) ArrayItemSyntax +//@[4:6959) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:6898) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:6898) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Stream Analytics to stream to a Log Analytics workspace when any Stream Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:278) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:278) StringSyntax +//@[21:278) StringComplete |'Deploys the diagnostic settings for Stream Analytics to stream to a Log Analytics workspace when any Stream Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[278:279) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Stream Analytics to Log Analytics workspace' +//@[8:97) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:97) StringSyntax +//@[21:97) StringComplete |'Deploy Diagnostic Settings for Stream Analytics to Log Analytics workspace'| +//@[97:98) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4538) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4538) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:115) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:115) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.StreamAnalytics/streamingjobs' +//@[12:61) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:61) StringSyntax +//@[20:61) StringComplete |'Microsoft.StreamAnalytics/streamingjobs'| +//@[61:62) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4390) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4390) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4313) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4313) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3331) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3331) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3287) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3287) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2455) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2455) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1523) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1523) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1468) ArrayItemSyntax +//@[22:1468) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.StreamAnalytics/streamingjobs/providers/diagnosticSettings' +//@[24:100) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:100) StringSyntax +//@[30:100) StringComplete |'Microsoft.StreamAnalytics/streamingjobs/providers/diagnosticSettings'| +//@[100:101) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:1029) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1029) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:427) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:427) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:182) ArrayItemSyntax +//@[28:182) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Execution' +//@[30:51) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:51) StringSyntax +//@[40:51) StringComplete |'Execution'| +//@[51:52) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:182) ArrayItemSyntax +//@[28:182) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Authoring' +//@[30:51) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:51) StringSyntax +//@[40:51) StringComplete |'Authoring'| +//@[51:52) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-StreamAnalytics' +//@[6:48) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:48) StringSyntax +//@[12:48) StringComplete |'Deploy-Diagnostics-StreamAnalytics'| +//@[48:49) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:6977) ArrayItemSyntax +//@[4:6977) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:6913) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:6913) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Time Series Insights to stream to a Log Analytics workspace when any Time Series Insights which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:286) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:286) StringSyntax +//@[21:286) StringComplete |'Deploys the diagnostic settings for Time Series Insights to stream to a Log Analytics workspace when any Time Series Insights which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[286:287) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Time Series Insights to Log Analytics workspace' +//@[8:101) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:101) StringSyntax +//@[21:101) StringComplete |'Deploy Diagnostic Settings for Time Series Insights to Log Analytics workspace'| +//@[101:102) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4541) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4541) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:117) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:117) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.TimeSeriesInsights/environments' +//@[12:63) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:63) StringSyntax +//@[20:63) StringComplete |'Microsoft.TimeSeriesInsights/environments'| +//@[63:64) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4391) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4391) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4314) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4314) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3332) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3332) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3288) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3288) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2456) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2456) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1524) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1524) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1469) ArrayItemSyntax +//@[22:1469) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.TimeSeriesInsights/environments/providers/diagnosticSettings' +//@[24:102) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:102) StringSyntax +//@[30:102) StringComplete |'Microsoft.TimeSeriesInsights/environments/providers/diagnosticSettings'| +//@[102:103) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:1028) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1028) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:426) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:426) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:180) ArrayItemSyntax +//@[28:180) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Ingress' +//@[30:49) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:49) StringSyntax +//@[40:49) StringComplete |'Ingress'| +//@[49:50) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:183) ArrayItemSyntax +//@[28:183) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Management' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'Management'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-TimeSeriesInsights' +//@[6:51) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:51) StringSyntax +//@[12:51) StringComplete |'Deploy-Diagnostics-TimeSeriesInsights'| +//@[51:52) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:6788) ArrayItemSyntax +//@[4:6788) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:6728) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:6728) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Traffic Manager to stream to a Log Analytics workspace when any Traffic Manager which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:276) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:276) StringSyntax +//@[21:276) StringComplete |'Deploys the diagnostic settings for Traffic Manager to stream to a Log Analytics workspace when any Traffic Manager which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[276:277) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Traffic Manager to Log Analytics workspace' +//@[8:96) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:96) StringSyntax +//@[21:96) StringComplete |'Deploy Diagnostic Settings for Traffic Manager to Log Analytics workspace'| +//@[96:97) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4371) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4371) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:116) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:116) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/trafficManagerProfiles' +//@[12:62) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:62) StringSyntax +//@[20:62) StringComplete |'Microsoft.Network/trafficManagerProfiles'| +//@[62:63) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4222) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4222) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4145) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4145) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3163) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3163) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3119) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3119) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2287) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2287) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1355) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1355) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1300) ArrayItemSyntax +//@[22:1300) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Network/trafficManagerProfiles/providers/diagnosticSettings' +//@[24:101) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:101) StringSyntax +//@[30:101) StringComplete |'Microsoft.Network/trafficManagerProfiles/providers/diagnosticSettings'| +//@[101:102) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:860) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:860) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:258) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:258) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:196) ArrayItemSyntax +//@[28:196) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ProbeHealthStatusEvents' +//@[30:65) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:65) StringSyntax +//@[40:65) StringComplete |'ProbeHealthStatusEvents'| +//@[65:66) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-TrafficManager' +//@[6:47) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:47) StringSyntax +//@[12:47) StringComplete |'Deploy-Diagnostics-TrafficManager'| +//@[47:48) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5754) ArrayItemSyntax +//@[4:5754) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:5706) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:5706) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Virtual Machines to stream to a Log Analytics workspace when any Virtual Machines which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:278) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:278) StringSyntax +//@[21:278) StringComplete |'Deploys the diagnostic settings for Virtual Machines to stream to a Log Analytics workspace when any Virtual Machines which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[278:279) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Virtual Machines to Log Analytics workspace' +//@[8:97) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:97) StringSyntax +//@[21:97) StringComplete |'Deploy Diagnostic Settings for Virtual Machines to Log Analytics workspace'| +//@[97:98) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1472) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1472) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:3714) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:3714) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:109) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:109) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Compute/virtualMachines' +//@[12:55) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:55) StringSyntax +//@[20:55) StringComplete |'Microsoft.Compute/virtualMachines'| +//@[55:56) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:3572) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:3572) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:3495) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:3495) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:432) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:432) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:380) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:380) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:2668) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:2668) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:2624) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:2624) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:1910) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:1910) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:557) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:557) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1078) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1078) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1023) ArrayItemSyntax +//@[22:1023) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Compute/virtualMachines/providers/diagnosticSettings' +//@[24:94) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:94) StringSyntax +//@[30:94) StringComplete |'Microsoft.Compute/virtualMachines/providers/diagnosticSettings'| +//@[94:95) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:590) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:590) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:419) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:419) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:354) ArrayItemSyntax +//@[28:354) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [] +//@[26:34) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:34) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) RightSquare |]| +//@[34:35) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:627) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:627) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-VM' +//@[6:35) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:35) StringSyntax +//@[12:35) StringComplete |'Deploy-Diagnostics-VM'| +//@[35:36) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:6723) ArrayItemSyntax +//@[4:6723) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:6663) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:6663) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Virtual Network to stream to a Log Analytics workspace when any Virtual Network which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:276) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:276) StringSyntax +//@[21:276) StringComplete |'Deploys the diagnostic settings for Virtual Network to stream to a Log Analytics workspace when any Virtual Network which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[276:277) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Virtual Network to Log Analytics workspace' +//@[8:96) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:96) StringSyntax +//@[21:96) StringComplete |'Deploy Diagnostic Settings for Virtual Network to Log Analytics workspace'| +//@[96:97) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:4306) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:4306) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:109) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:109) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/virtualNetworks' +//@[12:55) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:55) StringSyntax +//@[20:55) StringComplete |'Microsoft.Network/virtualNetworks'| +//@[55:56) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4164) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4164) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4087) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4087) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3105) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3105) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3061) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3061) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:2229) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2229) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1297) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1297) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1242) ArrayItemSyntax +//@[22:1242) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Network/virtualNetworks/providers/diagnosticSettings' +//@[24:94) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:94) StringSyntax +//@[30:94) StringComplete |'Microsoft.Network/virtualNetworks/providers/diagnosticSettings'| +//@[94:95) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:809) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:809) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:419) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:419) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:354) ArrayItemSyntax +//@[28:354) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:253) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:253) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:191) ArrayItemSyntax +//@[28:191) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'VMProtectionAlerts' +//@[30:60) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:60) StringSyntax +//@[40:60) StringComplete |'VMProtectionAlerts'| +//@[60:61) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-VirtualNetwork' +//@[6:47) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:47) StringSyntax +//@[12:47) StringComplete |'Deploy-Diagnostics-VirtualNetwork'| +//@[47:48) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:20139) ArrayItemSyntax +//@[4:20139) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:20102) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:20102) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys Virtual Network to be used as hub virtual network in desired region in the subscription where this policy is assigned.' +//@[8:149) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:149) StringSyntax +//@[21:149) StringComplete |'Deploys Virtual Network to be used as hub virtual network in desired region in the subscription where this policy is assigned.'| +//@[149:150) NewLine |\n| + DisplayName: 'Deploy Virtual Network to be used as hub virtual network in desired region' +//@[8:97) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:97) StringSyntax +//@[21:97) StringComplete |'Deploy Virtual Network to be used as hub virtual network in desired region'| +//@[97:98) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1611) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1611) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + hubName: { +//@[10:179) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |hubName| +//@[17:18) Colon |:| +//@[19:179) ObjectSyntax +//@[19:20) LeftBrace |{| +//@[20:21) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:119) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:119) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'hubName' +//@[14:36) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:36) StringSyntax +//@[27:36) StringComplete |'hubName'| +//@[36:37) NewLine |\n| + description: 'Name of the Hub' +//@[14:44) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:44) StringSyntax +//@[27:44) StringComplete |'Name of the Hub'| +//@[44:45) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + HUB: { +//@[10:177) ObjectPropertySyntax +//@[10:13) IdentifierSyntax +//@[10:13) Identifier |HUB| +//@[13:14) Colon |:| +//@[15:177) ObjectSyntax +//@[15:16) LeftBrace |{| +//@[16:17) NewLine |\n| + type: 'Object' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'Object'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:121) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:121) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'HUB' +//@[14:32) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:32) StringSyntax +//@[27:32) StringComplete |'HUB'| +//@[32:33) NewLine |\n| + description: 'Object describing HUB' +//@[14:50) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:50) StringSyntax +//@[27:50) StringComplete |'Object describing HUB'| +//@[50:51) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + vpngw: { +//@[10:218) ObjectPropertySyntax +//@[10:15) IdentifierSyntax +//@[10:15) Identifier |vpngw| +//@[15:16) Colon |:| +//@[17:218) ObjectSyntax +//@[17:18) LeftBrace |{| +//@[18:19) NewLine |\n| + type: 'Object' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'Object'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:131) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:131) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'vpngw' +//@[14:34) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:34) StringSyntax +//@[27:34) StringComplete |'vpngw'| +//@[34:35) NewLine |\n| + description: 'Object describing VPN gateway' +//@[14:58) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:58) StringSyntax +//@[27:58) StringComplete |'Object describing VPN gateway'| +//@[58:59) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: {} +//@[12:28) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:28) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) RightBrace |}| +//@[28:29) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + ergw: { +//@[10:225) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |ergw| +//@[14:15) Colon |:| +//@[16:225) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + type: 'Object' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'Object'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:139) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:139) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'ergw' +//@[14:33) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:33) StringSyntax +//@[27:33) StringComplete |'ergw'| +//@[33:34) NewLine |\n| + description: 'Object describing ExpressRoute gateway' +//@[14:67) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:67) StringSyntax +//@[27:67) StringComplete |'Object describing ExpressRoute gateway'| +//@[67:68) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: {} +//@[12:28) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:28) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) RightBrace |}| +//@[28:29) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + azfw: { +//@[10:225) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |azfw| +//@[14:15) Colon |:| +//@[16:225) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + type: 'Object' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'Object'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:139) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:139) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'ergw' +//@[14:33) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:33) StringSyntax +//@[27:33) StringComplete |'ergw'| +//@[33:34) NewLine |\n| + description: 'Object describing ExpressRoute gateway' +//@[14:67) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:67) StringSyntax +//@[27:67) StringComplete |'Object describing ExpressRoute gateway'| +//@[67:68) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: {} +//@[12:28) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:28) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) RightBrace |}| +//@[28:29) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + rgName: { +//@[10:194) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |rgName| +//@[16:17) Colon |:| +//@[18:194) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:135) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:135) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'rgName' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'rgName'| +//@[35:36) NewLine |\n| + description: 'Provide name for resource group.' +//@[14:61) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:61) StringSyntax +//@[27:61) StringComplete |'Provide name for resource group.'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:86) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:86) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:29) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringSyntax +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18103) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:18103) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:184) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:184) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:156) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:156) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:121) ArrayItemSyntax +//@[14:121) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Resources/subscriptions' +//@[16:59) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringSyntax +//@[24:59) StringComplete |'Microsoft.Resources/subscriptions'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:17886) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17886) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:17809) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:17809) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/virtualNetworks' +//@[14:55) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:55) StringSyntax +//@[20:55) StringComplete |'Microsoft.Network/virtualNetworks'| +//@[55:56) NewLine |\n| + name: '[parameters(\'hubName\')]' +//@[14:47) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:47) StringSyntax +//@[20:47) StringComplete |'[parameters(\'hubName\')]'| +//@[47:48) NewLine |\n| + deploymentScope: 'Subscription' +//@[14:45) ObjectPropertySyntax +//@[14:29) IdentifierSyntax +//@[14:29) Identifier |deploymentScope| +//@[29:30) Colon |:| +//@[31:45) StringSyntax +//@[31:45) StringComplete |'Subscription'| +//@[45:46) NewLine |\n| + existenceScope: 'ResourceGroup' +//@[14:45) ObjectPropertySyntax +//@[14:28) IdentifierSyntax +//@[14:28) Identifier |existenceScope| +//@[28:29) Colon |:| +//@[30:45) StringSyntax +//@[30:45) StringComplete |'ResourceGroup'| +//@[45:46) NewLine |\n| + ResourceGroupName: '[parameters(\'rgName\')]' +//@[14:59) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |ResourceGroupName| +//@[31:32) Colon |:| +//@[33:59) StringSyntax +//@[33:59) StringComplete |'[parameters(\'rgName\')]'| +//@[59:60) NewLine |\n| + roleDefinitionIds: [ +//@[14:156) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:156) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:17359) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:17359) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + location: 'northeurope' +//@[16:39) ObjectPropertySyntax +//@[16:24) IdentifierSyntax +//@[16:24) Identifier |location| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'northeurope'| +//@[39:40) NewLine |\n| + properties: { +//@[16:17275) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:17275) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:685) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:685) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + rgName: { +//@[20:107) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |rgName| +//@[26:27) Colon |:| +//@[28:107) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'rgName\')]' +//@[22:55) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:55) StringSyntax +//@[29:55) StringComplete |'[parameters(\'rgName\')]'| +//@[55:56) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + hubName: { +//@[20:109) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |hubName| +//@[27:28) Colon |:| +//@[29:109) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) NewLine |\n| + value: '[parameters(\'hubName\')]' +//@[22:56) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:56) StringSyntax +//@[29:56) StringComplete |'[parameters(\'hubName\')]'| +//@[56:57) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + HUB: { +//@[20:101) ObjectPropertySyntax +//@[20:23) IdentifierSyntax +//@[20:23) Identifier |HUB| +//@[23:24) Colon |:| +//@[25:101) ObjectSyntax +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + value: '[parameters(\'HUB\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[parameters(\'HUB\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + vpngw: { +//@[20:105) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |vpngw| +//@[25:26) Colon |:| +//@[27:105) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'vpngw\')]' +//@[22:54) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:54) StringSyntax +//@[29:54) StringComplete |'[parameters(\'vpngw\')]'| +//@[54:55) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + ergw: { +//@[20:103) ObjectPropertySyntax +//@[20:24) IdentifierSyntax +//@[20:24) Identifier |ergw| +//@[24:25) Colon |:| +//@[26:103) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + value: '[parameters(\'ergw\')]' +//@[22:53) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:53) StringSyntax +//@[29:53) StringComplete |'[parameters(\'ergw\')]'| +//@[53:54) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + azfw: { +//@[20:103) ObjectPropertySyntax +//@[20:24) IdentifierSyntax +//@[20:24) Identifier |azfw| +//@[24:25) Colon |:| +//@[26:103) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + value: '[parameters(\'azfw\')]' +//@[22:53) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:53) StringSyntax +//@[29:53) StringComplete |'[parameters(\'azfw\')]'| +//@[53:54) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:16503) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:16503) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' +//@[20:122) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:122) StringSyntax +//@[31:122) StringComplete |'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json'| +//@[122:123) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:1584) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:1584) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + hubName: { +//@[22:214) ObjectPropertySyntax +//@[22:29) IdentifierSyntax +//@[22:29) Identifier |hubName| +//@[29:30) Colon |:| +//@[31:214) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:118) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:118) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'Name of the HUB' +//@[26:56) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:56) StringSyntax +//@[39:56) StringComplete |'Name of the HUB'| +//@[56:57) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + HUB: { +//@[22:216) ObjectPropertySyntax +//@[22:25) IdentifierSyntax +//@[22:25) Identifier |HUB| +//@[25:26) Colon |:| +//@[27:216) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + type: 'object' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'object'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:124) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:124) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'Object describing HUB' +//@[26:62) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:62) StringSyntax +//@[39:62) StringComplete |'Object describing HUB'| +//@[62:63) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + vpngw: { +//@[22:267) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |vpngw| +//@[27:28) Colon |:| +//@[29:267) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) NewLine |\n| + type: 'object' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'object'| +//@[38:39) NewLine |\n| + defaultValue: {} +//@[24:40) ObjectPropertySyntax +//@[24:36) IdentifierSyntax +//@[24:36) Identifier |defaultValue| +//@[36:37) Colon |:| +//@[38:40) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + metadata: { +//@[24:132) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:132) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'Object describing VPN gateway' +//@[26:70) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'Object describing VPN gateway'| +//@[70:71) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ergw: { +//@[22:275) ObjectPropertySyntax +//@[22:26) IdentifierSyntax +//@[22:26) Identifier |ergw| +//@[26:27) Colon |:| +//@[28:275) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + type: 'object' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'object'| +//@[38:39) NewLine |\n| + defaultValue: {} +//@[24:40) ObjectPropertySyntax +//@[24:36) IdentifierSyntax +//@[24:36) Identifier |defaultValue| +//@[36:37) Colon |:| +//@[38:40) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + metadata: { +//@[24:141) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:141) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'Object describing ExpressRoute gateway' +//@[26:79) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:79) StringSyntax +//@[39:79) StringComplete |'Object describing ExpressRoute gateway'| +//@[79:80) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + azfw: { +//@[22:273) ObjectPropertySyntax +//@[22:26) IdentifierSyntax +//@[22:26) Identifier |azfw| +//@[26:27) Colon |:| +//@[28:273) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + type: 'object' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'object'| +//@[38:39) NewLine |\n| + defaultValue: {} +//@[24:40) ObjectPropertySyntax +//@[24:36) IdentifierSyntax +//@[24:36) Identifier |defaultValue| +//@[36:37) Colon |:| +//@[38:40) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + metadata: { +//@[24:139) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:139) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'Object describing the Azure Firewall' +//@[26:77) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:77) StringSyntax +//@[39:77) StringComplete |'Object describing the Azure Firewall'| +//@[77:78) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + rgName: { +//@[22:278) ObjectPropertySyntax +//@[22:28) IdentifierSyntax +//@[22:28) Identifier |rgName| +//@[28:29) Colon |:| +//@[30:278) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'String' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'String'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:183) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:183) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + displayName: 'rgName' +//@[26:47) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |displayName| +//@[37:38) Colon |:| +//@[39:47) StringSyntax +//@[39:47) StringComplete |'rgName'| +//@[47:48) NewLine |\n| + description: 'Provide name for resource group.' +//@[26:73) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'Provide name for resource group.'| +//@[73:74) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:14665) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:14665) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:319) ArrayItemSyntax +//@[22:319) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/resourceGroups' +//@[24:66) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:66) StringSyntax +//@[30:66) StringComplete |'Microsoft.Resources/resourceGroups'| +//@[66:67) NewLine |\n| + apiVersion: '2020-06-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2020-06-01'| +//@[48:49) NewLine |\n| + name: '[parameters(\'rgName\')]' +//@[24:56) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:56) StringSyntax +//@[30:56) StringComplete |'[parameters(\'rgName\')]'| +//@[56:57) NewLine |\n| + location: '[deployment().location]' +//@[24:59) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:59) StringSyntax +//@[34:59) StringComplete |'[deployment().location]'| +//@[59:60) NewLine |\n| + properties: {} +//@[24:38) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:38) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) RightBrace |}| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:2917) ArrayItemSyntax +//@[22:2917) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:63) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringSyntax +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2020-06-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2020-06-01'| +//@[48:49) NewLine |\n| + name: '[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]' +//@[24:101) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:101) StringSyntax +//@[30:101) StringComplete |'[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]'| +//@[101:102) NewLine |\n| + resourceGroup: '[parameters(\'rgName\')]' +//@[24:65) ObjectPropertySyntax +//@[24:37) IdentifierSyntax +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:65) StringSyntax +//@[39:65) StringComplete |'[parameters(\'rgName\')]'| +//@[65:66) NewLine |\n| + dependsOn: [ +//@[24:168) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:168) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' +//@[26:105) ArrayItemSyntax +//@[26:105) StringSyntax +//@[26:105) StringComplete |'[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]'| +//@[105:106) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:2419) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:2419) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:45) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringSyntax +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:2309) ObjectPropertySyntax +//@[26:34) IdentifierSyntax +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:2309) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'https: //schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[28:121) ObjectPropertySyntax +//@[28:37) StringSyntax +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:121) StringSyntax +//@[39:121) StringComplete |'https: //schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[121:122) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:53) ObjectPropertySyntax +//@[28:42) IdentifierSyntax +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringSyntax +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:42) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:42) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:41) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:41) ObjectSyntax +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:1982) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:1982) ArraySyntax +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:1911) ArrayItemSyntax +//@[30:1911) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + name: '[parameters(\'hubName\')]' +//@[32:65) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:65) StringSyntax +//@[38:65) StringComplete |'[parameters(\'hubName\')]'| +//@[65:66) NewLine |\n| + type: 'Microsoft.Network/virtualNetworks' +//@[32:73) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:73) StringSyntax +//@[38:73) StringComplete |'Microsoft.Network/virtualNetworks'| +//@[73:74) NewLine |\n| + apiVersion: '2020-04-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2020-04-01'| +//@[56:57) NewLine |\n| + location: '[parameters(\'HUB\').location]' +//@[32:74) ObjectPropertySyntax +//@[32:40) IdentifierSyntax +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:74) StringSyntax +//@[42:74) StringComplete |'[parameters(\'HUB\').location]'| +//@[74:75) NewLine |\n| + properties: { +//@[32:1575) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:1575) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + addressSpace: { +//@[34:254) ObjectPropertySyntax +//@[34:46) IdentifierSyntax +//@[34:46) Identifier |addressSpace| +//@[46:47) Colon |:| +//@[48:254) ObjectSyntax +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + addressPrefixes: [ +//@[36:168) ObjectPropertySyntax +//@[36:51) IdentifierSyntax +//@[36:51) Identifier |addressPrefixes| +//@[51:52) Colon |:| +//@[53:168) ArraySyntax +//@[53:54) LeftSquare |[| +//@[54:55) NewLine |\n| + '[parameters(\'HUB\').addressPrefix]' +//@[38:75) ArrayItemSyntax +//@[38:75) StringSyntax +//@[38:75) StringComplete |'[parameters(\'HUB\').addressPrefix]'| +//@[75:76) NewLine |\n| + ] +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + subnets: [ +//@[34:1240) ObjectPropertySyntax +//@[34:41) IdentifierSyntax +//@[34:41) Identifier |subnets| +//@[41:42) Colon |:| +//@[43:1240) ArraySyntax +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + { +//@[36:387) ArrayItemSyntax +//@[36:387) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + name: 'Infrastructure' +//@[38:60) ObjectPropertySyntax +//@[38:42) IdentifierSyntax +//@[38:42) Identifier |name| +//@[42:43) Colon |:| +//@[44:60) StringSyntax +//@[44:60) StringComplete |'Infrastructure'| +//@[60:61) NewLine |\n| + properties: { +//@[38:250) ObjectPropertySyntax +//@[38:48) IdentifierSyntax +//@[38:48) Identifier |properties| +//@[48:49) Colon |:| +//@[50:250) ObjectSyntax +//@[50:51) LeftBrace |{| +//@[51:52) NewLine |\n| + addressPrefix: '[if(not(empty(parameters(\'HUB\').subnets.infra)),parameters(\'HUB\').subnets.infra, json(\'null\'))]' +//@[40:158) ObjectPropertySyntax +//@[40:53) IdentifierSyntax +//@[40:53) Identifier |addressPrefix| +//@[53:54) Colon |:| +//@[55:158) StringSyntax +//@[55:158) StringComplete |'[if(not(empty(parameters(\'HUB\').subnets.infra)),parameters(\'HUB\').subnets.infra, json(\'null\'))]'| +//@[158:159) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + { +//@[36:390) ArrayItemSyntax +//@[36:390) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + name: 'AzureFirewallSubnet' +//@[38:65) ObjectPropertySyntax +//@[38:42) IdentifierSyntax +//@[38:42) Identifier |name| +//@[42:43) Colon |:| +//@[44:65) StringSyntax +//@[44:65) StringComplete |'AzureFirewallSubnet'| +//@[65:66) NewLine |\n| + properties: { +//@[38:248) ObjectPropertySyntax +//@[38:48) IdentifierSyntax +//@[38:48) Identifier |properties| +//@[48:49) Colon |:| +//@[50:248) ObjectSyntax +//@[50:51) LeftBrace |{| +//@[51:52) NewLine |\n| + addressPrefix: '[if(not(empty(parameters(\'HUB\').subnets.azfw)),parameters(\'HUB\').subnets.azfw, json(\'null\'))]' +//@[40:156) ObjectPropertySyntax +//@[40:53) IdentifierSyntax +//@[40:53) Identifier |addressPrefix| +//@[53:54) Colon |:| +//@[55:156) StringSyntax +//@[55:156) StringComplete |'[if(not(empty(parameters(\'HUB\').subnets.azfw)),parameters(\'HUB\').subnets.azfw, json(\'null\'))]'| +//@[156:157) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + { +//@[36:380) ArrayItemSyntax +//@[36:380) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + name: 'GatewaySubnet' +//@[38:59) ObjectPropertySyntax +//@[38:42) IdentifierSyntax +//@[38:42) Identifier |name| +//@[42:43) Colon |:| +//@[44:59) StringSyntax +//@[44:59) StringComplete |'GatewaySubnet'| +//@[59:60) NewLine |\n| + properties: { +//@[38:244) ObjectPropertySyntax +//@[38:48) IdentifierSyntax +//@[38:48) Identifier |properties| +//@[48:49) Colon |:| +//@[50:244) ObjectSyntax +//@[50:51) LeftBrace |{| +//@[51:52) NewLine |\n| + addressPrefix: '[if(not(empty(parameters(\'HUB\').subnets.gw)),parameters(\'HUB\').subnets.gw, json(\'null\'))]' +//@[40:152) ObjectPropertySyntax +//@[40:53) IdentifierSyntax +//@[40:53) Identifier |addressPrefix| +//@[53:54) Colon |:| +//@[55:152) StringSyntax +//@[55:152) StringComplete |'[if(not(empty(parameters(\'HUB\').subnets.gw)),parameters(\'HUB\').subnets.gw, json(\'null\'))]'| +//@[152:153) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + ] +//@[34:35) RightSquare |]| +//@[35:36) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:3646) ArrayItemSyntax +//@[22:3646) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:63) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringSyntax +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2020-06-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2020-06-01'| +//@[48:49) NewLine |\n| + condition: '[greater(length(parameters(\'vpngw\')),0)]' +//@[24:79) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |condition| +//@[33:34) Colon |:| +//@[35:79) StringSyntax +//@[35:79) StringComplete |'[greater(length(parameters(\'vpngw\')),0)]'| +//@[79:80) NewLine |\n| + resourceGroup: '[parameters(\'rgName\')]' +//@[24:65) ObjectPropertySyntax +//@[24:37) IdentifierSyntax +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:65) StringSyntax +//@[39:65) StringComplete |'[parameters(\'rgName\')]'| +//@[65:66) NewLine |\n| + dependsOn: [ +//@[24:160) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:160) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]' +//@[26:97) ArrayItemSyntax +//@[26:97) StringSyntax +//@[26:97) StringComplete |'[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]'| +//@[97:98) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + name: '[concat(parameters(\'hubName\'),\'-vpngw\')]' +//@[24:76) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:76) StringSyntax +//@[30:76) StringComplete |'[concat(parameters(\'hubName\'),\'-vpngw\')]'| +//@[76:77) NewLine |\n| + properties: { +//@[24:3101) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:3101) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:45) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringSyntax +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:2991) ObjectPropertySyntax +//@[26:34) IdentifierSyntax +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:2991) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[28:120) ObjectPropertySyntax +//@[28:37) StringSyntax +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:120) StringSyntax +//@[39:120) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[120:121) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:53) ObjectPropertySyntax +//@[28:42) IdentifierSyntax +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringSyntax +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:42) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:42) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:41) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:41) ObjectSyntax +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:2665) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:2665) ArraySyntax +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:548) ArrayItemSyntax +//@[30:548) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + type: 'Microsoft.Network/publicIpAddresses' +//@[32:75) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:75) StringSyntax +//@[38:75) StringComplete |'Microsoft.Network/publicIpAddresses'| +//@[75:76) NewLine |\n| + location: '[parameters(\'HUB\').location]' +//@[32:74) ObjectPropertySyntax +//@[32:40) IdentifierSyntax +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:74) StringSyntax +//@[42:74) StringComplete |'[parameters(\'HUB\').location]'| +//@[74:75) NewLine |\n| + name: '[concat(parameters(\'vpngw\').name,\'-pip\')]' +//@[32:85) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:85) StringSyntax +//@[38:85) StringComplete |'[concat(parameters(\'vpngw\').name,\'-pip\')]'| +//@[85:86) NewLine |\n| + properties: { +//@[32:149) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:149) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + publicIPAllocationMethod: 'Dynamic' +//@[34:69) ObjectPropertySyntax +//@[34:58) IdentifierSyntax +//@[34:58) Identifier |publicIPAllocationMethod| +//@[58:59) Colon |:| +//@[60:69) StringSyntax +//@[60:69) StringComplete |'Dynamic'| +//@[69:70) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + tags: {} +//@[32:40) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |tags| +//@[36:37) Colon |:| +//@[38:40) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:2045) ArrayItemSyntax +//@[30:2045) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + name: '[parameters(\'vpngw\').name]' +//@[32:68) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:68) StringSyntax +//@[38:68) StringComplete |'[parameters(\'vpngw\').name]'| +//@[68:69) NewLine |\n| + type: 'Microsoft.Network/virtualNetworkGateways' +//@[32:80) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:80) StringSyntax +//@[38:80) StringComplete |'Microsoft.Network/virtualNetworkGateways'| +//@[80:81) NewLine |\n| + location: '[parameters(\'HUB\').location]' +//@[32:74) ObjectPropertySyntax +//@[32:40) IdentifierSyntax +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:74) StringSyntax +//@[42:74) StringComplete |'[parameters(\'HUB\').location]'| +//@[74:75) NewLine |\n| + dependsOn: [ +//@[32:202) ObjectPropertySyntax +//@[32:41) IdentifierSyntax +//@[32:41) Identifier |dependsOn| +//@[41:42) Colon |:| +//@[43:202) ArraySyntax +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + '[concat(\'Microsoft.Network/publicIPAddresses/\', parameters(\'vpngw\').name,\'-pip\')]' +//@[34:123) ArrayItemSyntax +//@[34:123) StringSyntax +//@[34:123) StringComplete |'[concat(\'Microsoft.Network/publicIPAddresses/\', parameters(\'vpngw\').name,\'-pip\')]'| +//@[123:124) NewLine |\n| + ] +//@[32:33) RightSquare |]| +//@[33:34) NewLine |\n| + tags: {} +//@[32:40) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |tags| +//@[36:37) Colon |:| +//@[38:40) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + properties: { +//@[32:1455) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:1455) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + gatewayType: 'Vpn' +//@[34:52) ObjectPropertySyntax +//@[34:45) IdentifierSyntax +//@[34:45) Identifier |gatewayType| +//@[45:46) Colon |:| +//@[47:52) StringSyntax +//@[47:52) StringComplete |'Vpn'| +//@[52:53) NewLine |\n| + vpnType: '[parameters(\'vpngw\').vpnType]' +//@[34:76) ObjectPropertySyntax +//@[34:41) IdentifierSyntax +//@[34:41) Identifier |vpnType| +//@[41:42) Colon |:| +//@[43:76) StringSyntax +//@[43:76) StringComplete |'[parameters(\'vpngw\').vpnType]'| +//@[76:77) NewLine |\n| + ipConfigurations: [ +//@[34:1024) ObjectPropertySyntax +//@[34:50) IdentifierSyntax +//@[34:50) Identifier |ipConfigurations| +//@[50:51) Colon |:| +//@[52:1024) ArraySyntax +//@[52:53) LeftSquare |[| +//@[53:54) NewLine |\n| + { +//@[36:934) ArrayItemSyntax +//@[36:934) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + name: 'default' +//@[38:53) ObjectPropertySyntax +//@[38:42) IdentifierSyntax +//@[38:42) Identifier |name| +//@[42:43) Colon |:| +//@[44:53) StringSyntax +//@[44:53) StringComplete |'default'| +//@[53:54) NewLine |\n| + properties: { +//@[38:804) ObjectPropertySyntax +//@[38:48) IdentifierSyntax +//@[38:48) Identifier |properties| +//@[48:49) Colon |:| +//@[50:804) ObjectSyntax +//@[50:51) LeftBrace |{| +//@[51:52) NewLine |\n| + privateIPAllocationMethod: 'Dynamic' +//@[40:76) ObjectPropertySyntax +//@[40:65) IdentifierSyntax +//@[40:65) Identifier |privateIPAllocationMethod| +//@[65:66) Colon |:| +//@[67:76) StringSyntax +//@[67:76) StringComplete |'Dynamic'| +//@[76:77) NewLine |\n| + subnet: { +//@[40:319) ObjectPropertySyntax +//@[40:46) IdentifierSyntax +//@[40:46) Identifier |subnet| +//@[46:47) Colon |:| +//@[48:319) ObjectSyntax +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/virtualNetworks/\', parameters(\'hubName\'),\'/subnets/GatewaySubnet\')]' +//@[42:227) ObjectPropertySyntax +//@[42:44) IdentifierSyntax +//@[42:44) Identifier |id| +//@[44:45) Colon |:| +//@[46:227) StringSyntax +//@[46:227) StringComplete |'[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/virtualNetworks/\', parameters(\'hubName\'),\'/subnets/GatewaySubnet\')]'| +//@[227:228) NewLine |\n| + } +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + publicIpAddress: { +//@[40:315) ObjectPropertySyntax +//@[40:55) IdentifierSyntax +//@[40:55) Identifier |publicIpAddress| +//@[55:56) Colon |:| +//@[57:315) ObjectSyntax +//@[57:58) LeftBrace |{| +//@[58:59) NewLine |\n| + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/publicIPAddresses/\', parameters(\'vpngw\').name,\'-pip\')]' +//@[42:214) ObjectPropertySyntax +//@[42:44) IdentifierSyntax +//@[42:44) Identifier |id| +//@[44:45) Colon |:| +//@[46:214) StringSyntax +//@[46:214) StringComplete |'[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/publicIPAddresses/\', parameters(\'vpngw\').name,\'-pip\')]'| +//@[214:215) NewLine |\n| + } +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + ] +//@[34:35) RightSquare |]| +//@[35:36) NewLine |\n| + sku: { +//@[34:220) ObjectPropertySyntax +//@[34:37) IdentifierSyntax +//@[34:37) Identifier |sku| +//@[37:38) Colon |:| +//@[39:220) ObjectSyntax +//@[39:40) LeftBrace |{| +//@[40:41) NewLine |\n| + name: '[parameters(\'vpngw\').sku]' +//@[36:71) ObjectPropertySyntax +//@[36:40) IdentifierSyntax +//@[36:40) Identifier |name| +//@[40:41) Colon |:| +//@[42:71) StringSyntax +//@[42:71) StringComplete |'[parameters(\'vpngw\').sku]'| +//@[71:72) NewLine |\n| + tier: '[parameters(\'vpngw\').sku]' +//@[36:71) ObjectPropertySyntax +//@[36:40) IdentifierSyntax +//@[36:40) Identifier |tier| +//@[40:41) Colon |:| +//@[42:71) StringSyntax +//@[42:71) StringComplete |'[parameters(\'vpngw\').sku]'| +//@[71:72) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:3570) ArrayItemSyntax +//@[22:3570) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:63) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringSyntax +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2020-06-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2020-06-01'| +//@[48:49) NewLine |\n| + condition: '[greater(length(parameters(\'ergw\')),0)]' +//@[24:78) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |condition| +//@[33:34) Colon |:| +//@[35:78) StringSyntax +//@[35:78) StringComplete |'[greater(length(parameters(\'ergw\')),0)]'| +//@[78:79) NewLine |\n| + resourceGroup: '[parameters(\'rgName\')]' +//@[24:65) ObjectPropertySyntax +//@[24:37) IdentifierSyntax +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:65) StringSyntax +//@[39:65) StringComplete |'[parameters(\'rgName\')]'| +//@[65:66) NewLine |\n| + dependsOn: [ +//@[24:160) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:160) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]' +//@[26:97) ArrayItemSyntax +//@[26:97) StringSyntax +//@[26:97) StringComplete |'[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]'| +//@[97:98) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + name: '[concat(parameters(\'hubName\'),\'-ergw\')]' +//@[24:75) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:75) StringSyntax +//@[30:75) StringComplete |'[concat(parameters(\'hubName\'),\'-ergw\')]'| +//@[75:76) NewLine |\n| + properties: { +//@[24:3027) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:3027) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:45) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringSyntax +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:2917) ObjectPropertySyntax +//@[26:34) IdentifierSyntax +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:2917) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[28:120) ObjectPropertySyntax +//@[28:37) StringSyntax +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:120) StringSyntax +//@[39:120) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[120:121) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:53) ObjectPropertySyntax +//@[28:42) IdentifierSyntax +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringSyntax +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:42) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:42) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:41) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:41) ObjectSyntax +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:2591) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:2591) ArraySyntax +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:547) ArrayItemSyntax +//@[30:547) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + type: 'Microsoft.Network/publicIpAddresses' +//@[32:75) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:75) StringSyntax +//@[38:75) StringComplete |'Microsoft.Network/publicIpAddresses'| +//@[75:76) NewLine |\n| + location: '[parameters(\'HUB\').location]' +//@[32:74) ObjectPropertySyntax +//@[32:40) IdentifierSyntax +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:74) StringSyntax +//@[42:74) StringComplete |'[parameters(\'HUB\').location]'| +//@[74:75) NewLine |\n| + name: '[concat(parameters(\'ergw\').name,\'-pip\')]' +//@[32:84) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:84) StringSyntax +//@[38:84) StringComplete |'[concat(parameters(\'ergw\').name,\'-pip\')]'| +//@[84:85) NewLine |\n| + properties: { +//@[32:149) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:149) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + publicIPAllocationMethod: 'Dynamic' +//@[34:69) ObjectPropertySyntax +//@[34:58) IdentifierSyntax +//@[34:58) Identifier |publicIPAllocationMethod| +//@[58:59) Colon |:| +//@[60:69) StringSyntax +//@[60:69) StringComplete |'Dynamic'| +//@[69:70) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + tags: {} +//@[32:40) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |tags| +//@[36:37) Colon |:| +//@[38:40) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:1972) ArrayItemSyntax +//@[30:1972) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + name: '[parameters(\'ergw\').name]' +//@[32:67) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:67) StringSyntax +//@[38:67) StringComplete |'[parameters(\'ergw\').name]'| +//@[67:68) NewLine |\n| + type: 'Microsoft.Network/virtualNetworkGateways' +//@[32:80) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:80) StringSyntax +//@[38:80) StringComplete |'Microsoft.Network/virtualNetworkGateways'| +//@[80:81) NewLine |\n| + location: '[parameters(\'HUB\').location]' +//@[32:74) ObjectPropertySyntax +//@[32:40) IdentifierSyntax +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:74) StringSyntax +//@[42:74) StringComplete |'[parameters(\'HUB\').location]'| +//@[74:75) NewLine |\n| + dependsOn: [ +//@[32:201) ObjectPropertySyntax +//@[32:41) IdentifierSyntax +//@[32:41) Identifier |dependsOn| +//@[41:42) Colon |:| +//@[43:201) ArraySyntax +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + '[concat(\'Microsoft.Network/publicIPAddresses/\', parameters(\'ergw\').name,\'-pip\')]' +//@[34:122) ArrayItemSyntax +//@[34:122) StringSyntax +//@[34:122) StringComplete |'[concat(\'Microsoft.Network/publicIPAddresses/\', parameters(\'ergw\').name,\'-pip\')]'| +//@[122:123) NewLine |\n| + ] +//@[32:33) RightSquare |]| +//@[33:34) NewLine |\n| + tags: {} +//@[32:40) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |tags| +//@[36:37) Colon |:| +//@[38:40) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + properties: { +//@[32:1384) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:1384) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + gatewayType: 'ExpressRoute' +//@[34:61) ObjectPropertySyntax +//@[34:45) IdentifierSyntax +//@[34:45) Identifier |gatewayType| +//@[45:46) Colon |:| +//@[47:61) StringSyntax +//@[47:61) StringComplete |'ExpressRoute'| +//@[61:62) NewLine |\n| + ipConfigurations: [ +//@[34:1023) ObjectPropertySyntax +//@[34:50) IdentifierSyntax +//@[34:50) Identifier |ipConfigurations| +//@[50:51) Colon |:| +//@[52:1023) ArraySyntax +//@[52:53) LeftSquare |[| +//@[53:54) NewLine |\n| + { +//@[36:933) ArrayItemSyntax +//@[36:933) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + name: 'default' +//@[38:53) ObjectPropertySyntax +//@[38:42) IdentifierSyntax +//@[38:42) Identifier |name| +//@[42:43) Colon |:| +//@[44:53) StringSyntax +//@[44:53) StringComplete |'default'| +//@[53:54) NewLine |\n| + properties: { +//@[38:803) ObjectPropertySyntax +//@[38:48) IdentifierSyntax +//@[38:48) Identifier |properties| +//@[48:49) Colon |:| +//@[50:803) ObjectSyntax +//@[50:51) LeftBrace |{| +//@[51:52) NewLine |\n| + privateIPAllocationMethod: 'Dynamic' +//@[40:76) ObjectPropertySyntax +//@[40:65) IdentifierSyntax +//@[40:65) Identifier |privateIPAllocationMethod| +//@[65:66) Colon |:| +//@[67:76) StringSyntax +//@[67:76) StringComplete |'Dynamic'| +//@[76:77) NewLine |\n| + subnet: { +//@[40:319) ObjectPropertySyntax +//@[40:46) IdentifierSyntax +//@[40:46) Identifier |subnet| +//@[46:47) Colon |:| +//@[48:319) ObjectSyntax +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/virtualNetworks/\', parameters(\'hubName\'),\'/subnets/GatewaySubnet\')]' +//@[42:227) ObjectPropertySyntax +//@[42:44) IdentifierSyntax +//@[42:44) Identifier |id| +//@[44:45) Colon |:| +//@[46:227) StringSyntax +//@[46:227) StringComplete |'[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/virtualNetworks/\', parameters(\'hubName\'),\'/subnets/GatewaySubnet\')]'| +//@[227:228) NewLine |\n| + } +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + publicIpAddress: { +//@[40:314) ObjectPropertySyntax +//@[40:55) IdentifierSyntax +//@[40:55) Identifier |publicIpAddress| +//@[55:56) Colon |:| +//@[57:314) ObjectSyntax +//@[57:58) LeftBrace |{| +//@[58:59) NewLine |\n| + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/publicIPAddresses/\', parameters(\'ergw\').name,\'-pip\')]' +//@[42:213) ObjectPropertySyntax +//@[42:44) IdentifierSyntax +//@[42:44) Identifier |id| +//@[44:45) Colon |:| +//@[46:213) StringSyntax +//@[46:213) StringComplete |'[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/publicIPAddresses/\', parameters(\'ergw\').name,\'-pip\')]'| +//@[213:214) NewLine |\n| + } +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + ] +//@[34:35) RightSquare |]| +//@[35:36) NewLine |\n| + sku: { +//@[34:218) ObjectPropertySyntax +//@[34:37) IdentifierSyntax +//@[34:37) Identifier |sku| +//@[37:38) Colon |:| +//@[39:218) ObjectSyntax +//@[39:40) LeftBrace |{| +//@[40:41) NewLine |\n| + name: '[parameters(\'ergw\').sku]' +//@[36:70) ObjectPropertySyntax +//@[36:40) IdentifierSyntax +//@[36:40) Identifier |name| +//@[40:41) Colon |:| +//@[42:70) StringSyntax +//@[42:70) StringComplete |'[parameters(\'ergw\').sku]'| +//@[70:71) NewLine |\n| + tier: '[parameters(\'ergw\').sku]' +//@[36:70) ObjectPropertySyntax +//@[36:40) IdentifierSyntax +//@[36:40) Identifier |tier| +//@[40:41) Colon |:| +//@[42:70) StringSyntax +//@[42:70) StringComplete |'[parameters(\'ergw\').sku]'| +//@[70:71) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:4154) ArrayItemSyntax +//@[22:4154) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:63) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringSyntax +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2020-06-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2020-06-01'| +//@[48:49) NewLine |\n| + condition: '[greater(length(parameters(\'azfw\')),0)]' +//@[24:78) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |condition| +//@[33:34) Colon |:| +//@[35:78) StringSyntax +//@[35:78) StringComplete |'[greater(length(parameters(\'azfw\')),0)]'| +//@[78:79) NewLine |\n| + name: '[concat(parameters(\'hubName\'),\'-azfw\')]' +//@[24:75) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:75) StringSyntax +//@[30:75) StringComplete |'[concat(parameters(\'hubName\'),\'-azfw\')]'| +//@[75:76) NewLine |\n| + resourceGroup: '[parameters(\'rgName\')]' +//@[24:65) ObjectPropertySyntax +//@[24:37) IdentifierSyntax +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:65) StringSyntax +//@[39:65) StringComplete |'[parameters(\'rgName\')]'| +//@[65:66) NewLine |\n| + dependsOn: [ +//@[24:160) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:160) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]' +//@[26:97) ArrayItemSyntax +//@[26:97) StringSyntax +//@[26:97) StringComplete |'[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]'| +//@[97:98) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:3611) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:3611) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:45) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringSyntax +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:3501) ObjectPropertySyntax +//@[26:34) IdentifierSyntax +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:3501) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[28:120) ObjectPropertySyntax +//@[28:37) StringSyntax +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:120) StringSyntax +//@[39:120) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[120:121) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:53) ObjectPropertySyntax +//@[28:42) IdentifierSyntax +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringSyntax +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:42) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:42) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:41) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:41) ObjectSyntax +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:3175) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:3175) ArraySyntax +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:807) ArrayItemSyntax +//@[30:807) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + type: 'Microsoft.Network/publicIpAddresses' +//@[32:75) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:75) StringSyntax +//@[38:75) StringComplete |'Microsoft.Network/publicIpAddresses'| +//@[75:76) NewLine |\n| + name: '[concat(parameters(\'azfw\').name,\'-pip\')]' +//@[32:84) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:84) StringSyntax +//@[38:84) StringComplete |'[concat(parameters(\'azfw\').name,\'-pip\')]'| +//@[84:85) NewLine |\n| + location: '[parameters(\'azfw\').location]' +//@[32:75) ObjectPropertySyntax +//@[32:40) IdentifierSyntax +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:75) StringSyntax +//@[42:75) StringComplete |'[parameters(\'azfw\').location]'| +//@[75:76) NewLine |\n| + sku: { +//@[32:123) ObjectPropertySyntax +//@[32:35) IdentifierSyntax +//@[32:35) Identifier |sku| +//@[35:36) Colon |:| +//@[37:123) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + name: 'Standard' +//@[34:50) ObjectPropertySyntax +//@[34:38) IdentifierSyntax +//@[34:38) Identifier |name| +//@[38:39) Colon |:| +//@[40:50) StringSyntax +//@[40:50) StringComplete |'Standard'| +//@[50:51) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + zones: '[if(contains(parameters(\'azfw\'),\'pipZones\'),parameters(\'azfw\').pipZones,json(\'null\'))]' +//@[32:135) ObjectPropertySyntax +//@[32:37) IdentifierSyntax +//@[32:37) Identifier |zones| +//@[37:38) Colon |:| +//@[39:135) StringSyntax +//@[39:135) StringComplete |'[if(contains(parameters(\'azfw\'),\'pipZones\'),parameters(\'azfw\').pipZones,json(\'null\'))]'| +//@[135:136) NewLine |\n| + properties: { +//@[32:148) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:148) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + publicIPAllocationMethod: 'Static' +//@[34:68) ObjectPropertySyntax +//@[34:58) IdentifierSyntax +//@[34:58) Identifier |publicIPAllocationMethod| +//@[58:59) Colon |:| +//@[60:68) StringSyntax +//@[60:68) StringComplete |'Static'| +//@[68:69) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + tags: {} +//@[32:40) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |tags| +//@[36:37) Colon |:| +//@[38:40) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:2296) ArrayItemSyntax +//@[30:2296) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + type: 'Microsoft.Network/azureFirewalls' +//@[32:72) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:72) StringSyntax +//@[38:72) StringComplete |'Microsoft.Network/azureFirewalls'| +//@[72:73) NewLine |\n| + name: '[parameters(\'azfw\').name]' +//@[32:67) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:67) StringSyntax +//@[38:67) StringComplete |'[parameters(\'azfw\').name]'| +//@[67:68) NewLine |\n| + location: '[parameters(\'azfw\').location]' +//@[32:75) ObjectPropertySyntax +//@[32:40) IdentifierSyntax +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:75) StringSyntax +//@[42:75) StringComplete |'[parameters(\'azfw\').location]'| +//@[75:76) NewLine |\n| + zones: '[if(contains(parameters(\'azfw\'),\'fwZones\'),parameters(\'azfw\').fwZones,json(\'null\'))]' +//@[32:133) ObjectPropertySyntax +//@[32:37) IdentifierSyntax +//@[32:37) Identifier |zones| +//@[37:38) Colon |:| +//@[39:133) StringSyntax +//@[39:133) StringComplete |'[if(contains(parameters(\'azfw\'),\'fwZones\'),parameters(\'azfw\').fwZones,json(\'null\'))]'| +//@[133:134) NewLine |\n| + dependsOn: [ +//@[32:159) ObjectPropertySyntax +//@[32:41) IdentifierSyntax +//@[32:41) Identifier |dependsOn| +//@[41:42) Colon |:| +//@[43:159) ArraySyntax +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + '[concat(parameters(\'azfw\').name,\'-pip\')]' +//@[34:80) ArrayItemSyntax +//@[34:80) StringSyntax +//@[34:80) StringComplete |'[concat(parameters(\'azfw\').name,\'-pip\')]'| +//@[80:81) NewLine |\n| + ] +//@[32:33) RightSquare |]| +//@[33:34) NewLine |\n| + properties: { +//@[32:1623) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:1623) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + threatIntelMode: '[parameters(\'azfw\').threatIntelMode]' +//@[34:91) ObjectPropertySyntax +//@[34:49) IdentifierSyntax +//@[34:49) Identifier |threatIntelMode| +//@[49:50) Colon |:| +//@[51:91) StringSyntax +//@[51:91) StringComplete |'[parameters(\'azfw\').threatIntelMode]'| +//@[91:92) NewLine |\n| + additionalProperties: '[if(contains(parameters(\'azfw\'),\'additionalProperties\'),parameters(\'azfw\').additionalProperties,json(\'null\'))]' +//@[34:176) ObjectPropertySyntax +//@[34:54) IdentifierSyntax +//@[34:54) Identifier |additionalProperties| +//@[54:55) Colon |:| +//@[56:176) StringSyntax +//@[56:176) StringComplete |'[if(contains(parameters(\'azfw\'),\'additionalProperties\'),parameters(\'azfw\').additionalProperties,json(\'null\'))]'| +//@[176:177) NewLine |\n| + sku: '[if(contains(parameters(\'azfw\'),\'sku\'),parameters(\'azfw\').sku,json(\'null\'))]' +//@[34:125) ObjectPropertySyntax +//@[34:37) IdentifierSyntax +//@[34:37) Identifier |sku| +//@[37:38) Colon |:| +//@[39:125) StringSyntax +//@[39:125) StringComplete |'[if(contains(parameters(\'azfw\'),\'sku\'),parameters(\'azfw\').sku,json(\'null\'))]'| +//@[125:126) NewLine |\n| + ipConfigurations: [ +//@[34:989) ObjectPropertySyntax +//@[34:50) IdentifierSyntax +//@[34:50) Identifier |ipConfigurations| +//@[50:51) Colon |:| +//@[52:989) ArraySyntax +//@[52:53) LeftSquare |[| +//@[53:54) NewLine |\n| + { +//@[36:899) ArrayItemSyntax +//@[36:899) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + name: '[concat(parameters(\'azfw\').name,\'-pip\')]' +//@[38:90) ObjectPropertySyntax +//@[38:42) IdentifierSyntax +//@[38:42) Identifier |name| +//@[42:43) Colon |:| +//@[44:90) StringSyntax +//@[44:90) StringComplete |'[concat(parameters(\'azfw\').name,\'-pip\')]'| +//@[90:91) NewLine |\n| + properties: { +//@[38:732) ObjectPropertySyntax +//@[38:48) IdentifierSyntax +//@[38:48) Identifier |properties| +//@[48:49) Colon |:| +//@[50:732) ObjectSyntax +//@[50:51) LeftBrace |{| +//@[51:52) NewLine |\n| + subnet: { +//@[40:325) ObjectPropertySyntax +//@[40:46) IdentifierSyntax +//@[40:46) Identifier |subnet| +//@[46:47) Colon |:| +//@[48:325) ObjectSyntax +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/virtualNetworks/\', parameters(\'hubName\'),\'/subnets/AzureFirewallSubnet\')]' +//@[42:233) ObjectPropertySyntax +//@[42:44) IdentifierSyntax +//@[42:44) Identifier |id| +//@[44:45) Colon |:| +//@[46:233) StringSyntax +//@[46:233) StringComplete |'[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/virtualNetworks/\', parameters(\'hubName\'),\'/subnets/AzureFirewallSubnet\')]'| +//@[233:234) NewLine |\n| + } +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + publicIPAddress: { +//@[40:314) ObjectPropertySyntax +//@[40:55) IdentifierSyntax +//@[40:55) Identifier |publicIPAddress| +//@[55:56) Colon |:| +//@[57:314) ObjectSyntax +//@[57:58) LeftBrace |{| +//@[58:59) NewLine |\n| + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/publicIPAddresses/\', parameters(\'azfw\').name,\'-pip\')]' +//@[42:213) ObjectPropertySyntax +//@[42:44) IdentifierSyntax +//@[42:44) Identifier |id| +//@[44:45) Colon |:| +//@[46:213) StringSyntax +//@[46:213) StringComplete |'[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/publicIPAddresses/\', parameters(\'azfw\').name,\'-pip\')]'| +//@[213:214) NewLine |\n| + } +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + ] +//@[34:35) RightSquare |]| +//@[35:36) NewLine |\n| + firewallPolicy: '[if(contains(parameters(\'azfw\'),\'firewallPolicy\'),parameters(\'azfw\').firewallPolicy,json(\'null\'))]' +//@[34:158) ObjectPropertySyntax +//@[34:48) IdentifierSyntax +//@[34:48) Identifier |firewallPolicy| +//@[48:49) Colon |:| +//@[50:158) StringSyntax +//@[50:158) StringComplete |'[if(contains(parameters(\'azfw\'),\'firewallPolicy\'),parameters(\'azfw\').firewallPolicy,json(\'null\'))]'| +//@[158:159) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + tags: {} +//@[32:40) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |tags| +//@[36:37) Colon |:| +//@[38:40) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-HUB' +//@[6:24) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:24) StringSyntax +//@[12:24) StringComplete |'Deploy-HUB'| +//@[24:25) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:22660) ArrayItemSyntax +//@[4:22660) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:22622) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:22622) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploy spoke network with configuration to hub network based on ipam configuration object' +//@[8:112) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:112) StringSyntax +//@[21:112) StringComplete |'Deploy spoke network with configuration to hub network based on ipam configuration object'| +//@[112:113) NewLine |\n| + DisplayName: 'Deploy spoke network with configuration to hub network based on ipam configuration object' +//@[8:112) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:112) StringSyntax +//@[21:112) StringComplete |'Deploy spoke network with configuration to hub network based on ipam configuration object'| +//@[112:113) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:576) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:576) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + ipam: { +//@[10:188) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |ipam| +//@[14:15) Colon |:| +//@[16:188) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + type: 'Array' +//@[12:25) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:25) StringSyntax +//@[18:25) StringComplete |'Array'| +//@[25:26) NewLine |\n| + metadata: { +//@[12:103) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:103) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'ipam' +//@[14:33) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:33) StringSyntax +//@[27:33) StringComplete |'ipam'| +//@[33:34) NewLine |\n| + description: null +//@[14:31) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullLiteralSyntax +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: [] +//@[12:28) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:28) ArraySyntax +//@[26:27) LeftSquare |[| +//@[27:28) RightSquare |]| +//@[28:29) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:86) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:86) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:29) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringSyntax +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:21680) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21680) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:184) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:184) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:156) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:156) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:121) ArrayItemSyntax +//@[14:121) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Resources/subscriptions' +//@[16:59) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringSyntax +//@[24:59) StringComplete |'Microsoft.Resources/subscriptions'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:21463) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:21463) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:21386) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:21386) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Resources/resourceGroups' +//@[14:56) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:56) StringSyntax +//@[20:56) StringComplete |'Microsoft.Resources/resourceGroups'| +//@[56:57) NewLine |\n| + deploymentScope: 'Subscription' +//@[14:45) ObjectPropertySyntax +//@[14:29) IdentifierSyntax +//@[14:29) Identifier |deploymentScope| +//@[29:30) Colon |:| +//@[31:45) StringSyntax +//@[31:45) StringComplete |'Subscription'| +//@[45:46) NewLine |\n| + existenceScope: 'Subscription' +//@[14:44) ObjectPropertySyntax +//@[14:28) IdentifierSyntax +//@[14:28) Identifier |existenceScope| +//@[28:29) Colon |:| +//@[30:44) StringSyntax +//@[30:44) StringComplete |'Subscription'| +//@[44:45) NewLine |\n| + roleDefinitionIds: [ +//@[14:156) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:156) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + existenceCondition: { +//@[14:400) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:400) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:348) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:348) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:152) ArrayItemSyntax +//@[18:152) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'type' +//@[20:33) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:33) StringSyntax +//@[27:33) StringComplete |'type'| +//@[33:34) NewLine |\n| + equals: 'Microsoft.Resources/subscriptions/resourceGroups' +//@[20:78) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:78) StringSyntax +//@[28:78) StringComplete |'Microsoft.Resources/subscriptions/resourceGroups'| +//@[78:79) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:152) ArrayItemSyntax +//@[18:152) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'name' +//@[20:33) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:33) StringSyntax +//@[27:33) StringComplete |'name'| +//@[33:34) NewLine |\n| + like: '[concat(subscription().displayName, \'-network\')]' +//@[20:78) ObjectPropertySyntax +//@[20:24) IdentifierSyntax +//@[20:24) Identifier |like| +//@[24:25) Colon |:| +//@[26:78) StringSyntax +//@[26:78) StringComplete |'[concat(subscription().displayName, \'-network\')]'| +//@[78:79) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + deployment: { +//@[14:20643) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:20643) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + location: 'northeurope' +//@[16:39) ObjectPropertySyntax +//@[16:24) IdentifierSyntax +//@[16:24) Identifier |location| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'northeurope'| +//@[39:40) NewLine |\n| + properties: { +//@[16:20559) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:20559) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:194) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:194) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + ipam: { +//@[20:142) ObjectPropertySyntax +//@[20:24) IdentifierSyntax +//@[20:24) Identifier |ipam| +//@[24:25) Colon |:| +//@[26:142) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + value: '[parameters(\'ipam\')]' +//@[22:53) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:53) StringSyntax +//@[29:53) StringComplete |'[parameters(\'ipam\')]'| +//@[53:54) NewLine |\n| + defaultValue: [] +//@[22:38) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |defaultValue| +//@[34:35) Colon |:| +//@[36:38) ArraySyntax +//@[36:37) LeftSquare |[| +//@[37:38) RightSquare |]| +//@[38:39) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:20278) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:20278) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' +//@[20:122) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:122) StringSyntax +//@[31:122) StringComplete |'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json'| +//@[122:123) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:1716) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:1716) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + ipam: { +//@[22:1660) ObjectPropertySyntax +//@[22:26) IdentifierSyntax +//@[22:26) Identifier |ipam| +//@[26:27) Colon |:| +//@[28:1660) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + defaultValue: [ +//@[24:1568) ObjectPropertySyntax +//@[24:36) IdentifierSyntax +//@[24:36) Identifier |defaultValue| +//@[36:37) Colon |:| +//@[38:1568) ArraySyntax +//@[38:39) LeftSquare |[| +//@[39:40) NewLine |\n| + { +//@[26:1502) ArrayItemSyntax +//@[26:1502) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + name: 'bu1-weu-msx3-vNet1' +//@[28:54) ObjectPropertySyntax +//@[28:32) IdentifierSyntax +//@[28:32) Identifier |name| +//@[32:33) Colon |:| +//@[34:54) StringSyntax +//@[34:54) StringComplete |'bu1-weu-msx3-vNet1'| +//@[54:55) NewLine |\n| + location: 'westeurope' +//@[28:50) ObjectPropertySyntax +//@[28:36) IdentifierSyntax +//@[28:36) Identifier |location| +//@[36:37) Colon |:| +//@[38:50) StringSyntax +//@[38:50) StringComplete |'westeurope'| +//@[50:51) NewLine |\n| + virtualNetworks: { +//@[28:376) ObjectPropertySyntax +//@[28:43) IdentifierSyntax +//@[28:43) Identifier |virtualNetworks| +//@[43:44) Colon |:| +//@[45:376) ObjectSyntax +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + properties: { +//@[30:299) ObjectPropertySyntax +//@[30:40) IdentifierSyntax +//@[30:40) Identifier |properties| +//@[40:41) Colon |:| +//@[42:299) ObjectSyntax +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + addressSpace: { +//@[32:223) ObjectPropertySyntax +//@[32:44) IdentifierSyntax +//@[32:44) Identifier |addressSpace| +//@[44:45) Colon |:| +//@[46:223) ObjectSyntax +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + addressPrefixes: [ +//@[34:141) ObjectPropertySyntax +//@[34:49) IdentifierSyntax +//@[34:49) Identifier |addressPrefixes| +//@[49:50) Colon |:| +//@[51:141) ArraySyntax +//@[51:52) LeftSquare |[| +//@[52:53) NewLine |\n| + '10.51.217.0/24' +//@[36:52) ArrayItemSyntax +//@[36:52) StringSyntax +//@[36:52) StringComplete |'10.51.217.0/24'| +//@[52:53) NewLine |\n| + ] +//@[34:35) RightSquare |]| +//@[35:36) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + networkSecurityGroups: { +//@[28:208) ObjectPropertySyntax +//@[28:49) IdentifierSyntax +//@[28:49) Identifier |networkSecurityGroups| +//@[49:50) Colon |:| +//@[51:208) ObjectSyntax +//@[51:52) LeftBrace |{| +//@[52:53) NewLine |\n| + properties: { +//@[30:125) ObjectPropertySyntax +//@[30:40) IdentifierSyntax +//@[30:40) Identifier |properties| +//@[40:41) Colon |:| +//@[42:125) ObjectSyntax +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + securityRules: [] +//@[32:49) ObjectPropertySyntax +//@[32:45) IdentifierSyntax +//@[32:45) Identifier |securityRules| +//@[45:46) Colon |:| +//@[47:49) ArraySyntax +//@[47:48) LeftSquare |[| +//@[48:49) RightSquare |]| +//@[49:50) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + routeTables: { +//@[28:191) ObjectPropertySyntax +//@[28:39) IdentifierSyntax +//@[28:39) Identifier |routeTables| +//@[39:40) Colon |:| +//@[41:191) ObjectSyntax +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + properties: { +//@[30:118) ObjectPropertySyntax +//@[30:40) IdentifierSyntax +//@[30:40) Identifier |properties| +//@[40:41) Colon |:| +//@[42:118) ObjectSyntax +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + routes: [] +//@[32:42) ObjectPropertySyntax +//@[32:38) IdentifierSyntax +//@[32:38) Identifier |routes| +//@[38:39) Colon |:| +//@[40:42) ArraySyntax +//@[40:41) LeftSquare |[| +//@[41:42) RightSquare |]| +//@[42:43) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + hubVirtualNetworkConnection: { +//@[28:562) ObjectPropertySyntax +//@[28:55) IdentifierSyntax +//@[28:55) Identifier |hubVirtualNetworkConnection| +//@[55:56) Colon |:| +//@[57:562) ObjectSyntax +//@[57:58) LeftBrace |{| +//@[58:59) NewLine |\n| + vWanVhubResourceId: '/subscriptions/99c2838f-a548-4884-a6e2-38c1f8fb4c0b/resourceGroups/contoso-global-vwan/providers/Microsoft.Network/virtualHubs/contoso-vhub-weu' +//@[30:195) ObjectPropertySyntax +//@[30:48) IdentifierSyntax +//@[30:48) Identifier |vWanVhubResourceId| +//@[48:49) Colon |:| +//@[50:195) StringSyntax +//@[50:195) StringComplete |'/subscriptions/99c2838f-a548-4884-a6e2-38c1f8fb4c0b/resourceGroups/contoso-global-vwan/providers/Microsoft.Network/virtualHubs/contoso-vhub-weu'| +//@[195:196) NewLine |\n| + properties: { +//@[30:277) ObjectPropertySyntax +//@[30:40) IdentifierSyntax +//@[30:40) Identifier |properties| +//@[40:41) Colon |:| +//@[42:277) ObjectSyntax +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + allowHubToRemoteVnetTransit: true +//@[32:65) ObjectPropertySyntax +//@[32:59) IdentifierSyntax +//@[32:59) Identifier |allowHubToRemoteVnetTransit| +//@[59:60) Colon |:| +//@[61:65) BooleanLiteralSyntax +//@[61:65) TrueKeyword |true| +//@[65:66) NewLine |\n| + allowRemoteVnetToUseHubVnetGateways: false +//@[32:74) ObjectPropertySyntax +//@[32:67) IdentifierSyntax +//@[32:67) Identifier |allowRemoteVnetToUseHubVnetGateways| +//@[67:68) Colon |:| +//@[69:74) BooleanLiteralSyntax +//@[69:74) FalseKeyword |false| +//@[74:75) NewLine |\n| + enableInternetSecurity: true +//@[32:60) ObjectPropertySyntax +//@[32:54) IdentifierSyntax +//@[32:54) Identifier |enableInternetSecurity| +//@[54:55) Colon |:| +//@[56:60) BooleanLiteralSyntax +//@[56:60) TrueKeyword |true| +//@[60:61) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + type: 'Array' +//@[24:37) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:37) StringSyntax +//@[30:37) StringComplete |'Array'| +//@[37:38) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: { +//@[20:290) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:290) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) NewLine |\n| + vNetRgName: '[concat(subscription().displayName, \'-network\')]' +//@[22:86) ObjectPropertySyntax +//@[22:32) IdentifierSyntax +//@[22:32) Identifier |vNetRgName| +//@[32:33) Colon |:| +//@[34:86) StringSyntax +//@[34:86) StringComplete |'[concat(subscription().displayName, \'-network\')]'| +//@[86:87) NewLine |\n| + vNetName: '[concat(subscription().displayName, \'-vNet\')]' +//@[22:81) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |vNetName| +//@[30:31) Colon |:| +//@[32:81) StringSyntax +//@[32:81) StringComplete |'[concat(subscription().displayName, \'-vNet\')]'| +//@[81:82) NewLine |\n| + vNetSubId: '[subscription().subscriptionId]' +//@[22:66) ObjectPropertySyntax +//@[22:31) IdentifierSyntax +//@[22:31) Identifier |vNetSubId| +//@[31:32) Colon |:| +//@[33:66) StringSyntax +//@[33:66) StringComplete |'[subscription().subscriptionId]'| +//@[66:67) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:17790) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:17790) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:2091) ArrayItemSyntax +//@[22:2091) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:63) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringSyntax +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2020-06-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2020-06-01'| +//@[48:49) NewLine |\n| + name: '[concat(\'es-ipam-\',subscription().displayName,\'-RG-\',copyIndex())]' +//@[24:102) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:102) StringSyntax +//@[30:102) StringComplete |'[concat(\'es-ipam-\',subscription().displayName,\'-RG-\',copyIndex())]'| +//@[102:103) NewLine |\n| + location: '[parameters(\'ipam\')[copyIndex()].location]' +//@[24:80) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:80) StringSyntax +//@[34:80) StringComplete |'[parameters(\'ipam\')[copyIndex()].location]'| +//@[80:81) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:1335) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1335) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:45) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringSyntax +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:1225) ObjectPropertySyntax +//@[26:34) IdentifierSyntax +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:1225) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[28:120) ObjectPropertySyntax +//@[28:37) StringSyntax +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:120) StringSyntax +//@[39:120) StringComplete |'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[120:121) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:53) ObjectPropertySyntax +//@[28:42) IdentifierSyntax +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringSyntax +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:42) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:42) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:41) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:41) ObjectSyntax +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:859) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:859) ArraySyntax +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:399) ArrayItemSyntax +//@[30:399) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Resources/resourceGroups' +//@[32:74) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:74) StringSyntax +//@[38:74) StringComplete |'Microsoft.Resources/resourceGroups'| +//@[74:75) NewLine |\n| + apiVersion: '2020-06-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2020-06-01'| +//@[56:57) NewLine |\n| + name: '[variables(\'vNetRgName\')]' +//@[32:67) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:67) StringSyntax +//@[38:67) StringComplete |'[variables(\'vNetRgName\')]'| +//@[67:68) NewLine |\n| + location: '[parameters(\'ipam\')[copyIndex()].location]' +//@[32:88) ObjectPropertySyntax +//@[32:40) IdentifierSyntax +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:88) StringSyntax +//@[42:88) StringComplete |'[parameters(\'ipam\')[copyIndex()].location]'| +//@[88:89) NewLine |\n| + properties: {} +//@[32:46) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:46) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) RightBrace |}| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:388) ArrayItemSyntax +//@[30:388) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Resources/resourceGroups' +//@[32:74) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:74) StringSyntax +//@[38:74) StringComplete |'Microsoft.Resources/resourceGroups'| +//@[74:75) NewLine |\n| + apiVersion: '2020-06-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2020-06-01'| +//@[56:57) NewLine |\n| + name: 'NetworkWatcherRG' +//@[32:56) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:56) StringSyntax +//@[38:56) StringComplete |'NetworkWatcherRG'| +//@[56:57) NewLine |\n| + location: '[parameters(\'ipam\')[copyIndex()].location]' +//@[32:88) ObjectPropertySyntax +//@[32:40) IdentifierSyntax +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:88) StringSyntax +//@[42:88) StringComplete |'[parameters(\'ipam\')[copyIndex()].location]'| +//@[88:89) NewLine |\n| + properties: {} +//@[32:46) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:46) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) RightBrace |}| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + outputs: {} +//@[28:39) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |outputs| +//@[35:36) Colon |:| +//@[37:39) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + copy: { +//@[24:170) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |copy| +//@[28:29) Colon |:| +//@[30:170) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + name: 'ipam-rg-loop' +//@[26:46) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |name| +//@[30:31) Colon |:| +//@[32:46) StringSyntax +//@[32:46) StringComplete |'ipam-rg-loop'| +//@[46:47) NewLine |\n| + count: '[length(parameters(\'ipam\'))]' +//@[26:65) ObjectPropertySyntax +//@[26:31) IdentifierSyntax +//@[26:31) Identifier |count| +//@[31:32) Colon |:| +//@[33:65) StringSyntax +//@[33:65) StringComplete |'[length(parameters(\'ipam\'))]'| +//@[65:66) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + condition: '[if(and(not(empty(parameters(\'ipam\'))), equals(toLower(parameters(\'ipam\')[copyIndex()].name),toLower(variables(\'vNetName\')))),bool(\'true\'),bool(\'false\'))]' +//@[24:201) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |condition| +//@[33:34) Colon |:| +//@[35:201) StringSyntax +//@[35:201) StringComplete |'[if(and(not(empty(parameters(\'ipam\'))), equals(toLower(parameters(\'ipam\')[copyIndex()].name),toLower(variables(\'vNetName\')))),bool(\'true\'),bool(\'false\'))]'| +//@[201:202) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:15643) ArrayItemSyntax +//@[22:15643) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:63) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringSyntax +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2020-06-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2020-06-01'| +//@[48:49) NewLine |\n| + name: '[concat(\'es-ipam-\',subscription().displayName,\'-nsg-udr-vnet-hub-vwan-peering-\',copyIndex())]' +//@[24:129) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:129) StringSyntax +//@[30:129) StringComplete |'[concat(\'es-ipam-\',subscription().displayName,\'-nsg-udr-vnet-hub-vwan-peering-\',copyIndex())]'| +//@[129:130) NewLine |\n| + dependsOn: [ +//@[24:161) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:161) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(\'es-ipam-\',subscription().displayName,\'-RG-\',copyIndex())]' +//@[26:98) ArrayItemSyntax +//@[26:98) StringSyntax +//@[26:98) StringComplete |'[concat(\'es-ipam-\',subscription().displayName,\'-RG-\',copyIndex())]'| +//@[98:99) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:14751) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:14751) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:45) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringSyntax +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:14641) ObjectPropertySyntax +//@[26:34) IdentifierSyntax +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:14641) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[28:120) ObjectPropertySyntax +//@[28:37) StringSyntax +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:120) StringSyntax +//@[39:120) StringComplete |'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[120:121) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:53) ObjectPropertySyntax +//@[28:42) IdentifierSyntax +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringSyntax +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:42) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:42) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:41) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:41) ObjectSyntax +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:14275) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:14275) ArraySyntax +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:697) ArrayItemSyntax +//@[30:697) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + condition: '[contains(parameters(\'ipam\')[copyIndex()],\'networkSecurityGroups\')]' +//@[32:116) ObjectPropertySyntax +//@[32:41) IdentifierSyntax +//@[32:41) Identifier |condition| +//@[41:42) Colon |:| +//@[43:116) StringSyntax +//@[43:116) StringComplete |'[contains(parameters(\'ipam\')[copyIndex()],\'networkSecurityGroups\')]'| +//@[116:117) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + type: 'Microsoft.Network/networkSecurityGroups' +//@[32:79) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:79) StringSyntax +//@[38:79) StringComplete |'Microsoft.Network/networkSecurityGroups'| +//@[79:80) NewLine |\n| + name: '[concat(subscription().displayName, \'-nsg\')]' +//@[32:86) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:86) StringSyntax +//@[38:86) StringComplete |'[concat(subscription().displayName, \'-nsg\')]'| +//@[86:87) NewLine |\n| + location: '[parameters(\'ipam\')[copyIndex()].location]' +//@[32:88) ObjectPropertySyntax +//@[32:40) IdentifierSyntax +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:88) StringSyntax +//@[42:88) StringComplete |'[parameters(\'ipam\')[copyIndex()].location]'| +//@[88:89) NewLine |\n| + properties: '[if(contains(parameters(\'ipam\')[copyIndex()],\'networkSecurityGroups\'),parameters(\'ipam\')[copyIndex()].networkSecurityGroups.properties,json(\'null\'))]' +//@[32:203) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:203) StringSyntax +//@[44:203) StringComplete |'[if(contains(parameters(\'ipam\')[copyIndex()],\'networkSecurityGroups\'),parameters(\'ipam\')[copyIndex()].networkSecurityGroups.properties,json(\'null\'))]'| +//@[203:204) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:657) ArrayItemSyntax +//@[30:657) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + condition: '[contains(parameters(\'ipam\')[copyIndex()],\'routeTables\')]' +//@[32:106) ObjectPropertySyntax +//@[32:41) IdentifierSyntax +//@[32:41) Identifier |condition| +//@[41:42) Colon |:| +//@[43:106) StringSyntax +//@[43:106) StringComplete |'[contains(parameters(\'ipam\')[copyIndex()],\'routeTables\')]'| +//@[106:107) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + type: 'Microsoft.Network/routeTables' +//@[32:69) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:69) StringSyntax +//@[38:69) StringComplete |'Microsoft.Network/routeTables'| +//@[69:70) NewLine |\n| + name: '[concat(subscription().displayName, \'-udr\')]' +//@[32:86) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:86) StringSyntax +//@[38:86) StringComplete |'[concat(subscription().displayName, \'-udr\')]'| +//@[86:87) NewLine |\n| + location: '[parameters(\'ipam\')[copyIndex()].location]' +//@[32:88) ObjectPropertySyntax +//@[32:40) IdentifierSyntax +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:88) StringSyntax +//@[42:88) StringComplete |'[parameters(\'ipam\')[copyIndex()].location]'| +//@[88:89) NewLine |\n| + properties: '[if(contains(parameters(\'ipam\')[copyIndex()],\'routeTables\'),parameters(\'ipam\')[copyIndex()].routeTables.properties,json(\'null\'))]' +//@[32:183) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:183) StringSyntax +//@[44:183) StringComplete |'[if(contains(parameters(\'ipam\')[copyIndex()],\'routeTables\'),parameters(\'ipam\')[copyIndex()].routeTables.properties,json(\'null\'))]'| +//@[183:184) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:919) ArrayItemSyntax +//@[30:919) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + condition: '[contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\')]' +//@[32:110) ObjectPropertySyntax +//@[32:41) IdentifierSyntax +//@[32:41) Identifier |condition| +//@[41:42) Colon |:| +//@[43:110) StringSyntax +//@[43:110) StringComplete |'[contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\')]'| +//@[110:111) NewLine |\n| + type: 'Microsoft.Network/virtualNetworks' +//@[32:73) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:73) StringSyntax +//@[38:73) StringComplete |'Microsoft.Network/virtualNetworks'| +//@[73:74) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + name: '[concat(subscription().displayName, \'-vnet\')]' +//@[32:87) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:87) StringSyntax +//@[38:87) StringComplete |'[concat(subscription().displayName, \'-vnet\')]'| +//@[87:88) NewLine |\n| + location: '[parameters(\'ipam\')[copyIndex()].location]' +//@[32:88) ObjectPropertySyntax +//@[32:40) IdentifierSyntax +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:88) StringSyntax +//@[42:88) StringComplete |'[parameters(\'ipam\')[copyIndex()].location]'| +//@[88:89) NewLine |\n| + dependsOn: [ +//@[32:244) ObjectPropertySyntax +//@[32:41) IdentifierSyntax +//@[32:41) Identifier |dependsOn| +//@[41:42) Colon |:| +//@[43:244) ArraySyntax +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + '[concat(subscription().displayName, \'-nsg\')]' +//@[34:82) ArrayItemSyntax +//@[34:82) StringSyntax +//@[34:82) StringComplete |'[concat(subscription().displayName, \'-nsg\')]'| +//@[82:83) NewLine |\n| + '[concat(subscription().displayName, \'-udr\')]' +//@[34:82) ArrayItemSyntax +//@[34:82) StringSyntax +//@[34:82) StringComplete |'[concat(subscription().displayName, \'-udr\')]'| +//@[82:83) NewLine |\n| + ] +//@[32:33) RightSquare |]| +//@[33:34) NewLine |\n| + properties: '[if(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\'),parameters(\'ipam\')[copyIndex()].virtualNetworks.properties,json(\'null\'))]' +//@[32:191) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:191) StringSyntax +//@[44:191) StringComplete |'[if(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\'),parameters(\'ipam\')[copyIndex()].virtualNetworks.properties,json(\'null\'))]'| +//@[191:192) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:794) ArrayItemSyntax +//@[30:794) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + condition: '[contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\')]' +//@[32:117) ObjectPropertySyntax +//@[32:41) IdentifierSyntax +//@[32:41) Identifier |condition| +//@[41:42) Colon |:| +//@[43:117) StringSyntax +//@[43:117) StringComplete |'[contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\')]'| +//@[117:118) NewLine |\n| + type: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' +//@[32:96) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:96) StringSyntax +//@[38:96) StringComplete |'Microsoft.Network/virtualNetworks/virtualNetworkPeerings'| +//@[96:97) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + name: '[concat(variables(\'vNetName\'), \'/peerToHub\')]' +//@[32:89) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:89) StringSyntax +//@[38:89) StringComplete |'[concat(variables(\'vNetName\'), \'/peerToHub\')]'| +//@[89:90) NewLine |\n| + dependsOn: [ +//@[32:162) ObjectPropertySyntax +//@[32:41) IdentifierSyntax +//@[32:41) Identifier |dependsOn| +//@[41:42) Colon |:| +//@[43:162) ArraySyntax +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + '[concat(subscription().displayName, \'-vnet\')]' +//@[34:83) ArrayItemSyntax +//@[34:83) StringSyntax +//@[34:83) StringComplete |'[concat(subscription().displayName, \'-vnet\')]'| +//@[83:84) NewLine |\n| + ] +//@[32:33) RightSquare |]| +//@[33:34) NewLine |\n| + properties: '[if(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties,json(\'null\'))]' +//@[32:205) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:205) StringSyntax +//@[44:205) StringComplete |'[if(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties,json(\'null\'))]'| +//@[205:206) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:6570) ArrayItemSyntax +//@[30:6570) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + condition: '[and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\'),contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\'))]' +//@[32:286) ObjectPropertySyntax +//@[32:41) IdentifierSyntax +//@[32:41) Identifier |condition| +//@[41:42) Colon |:| +//@[43:286) StringSyntax +//@[43:286) StringComplete |'[and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\'),contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\'))]'| +//@[286:287) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[32:71) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:71) StringSyntax +//@[38:71) StringComplete |'Microsoft.Resources/deployments'| +//@[71:72) NewLine |\n| + apiVersion: '2020-06-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2020-06-01'| +//@[56:57) NewLine |\n| + name: '[concat(\'es-ipam-vWan-\',subscription().displayName,\'-peering-\',copyIndex())]' +//@[32:120) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:120) StringSyntax +//@[38:120) StringComplete |'[concat(\'es-ipam-vWan-\',subscription().displayName,\'-peering-\',copyIndex())]'| +//@[120:121) NewLine |\n| + subscriptionId: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),split(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,\'/\')[2],json(\'null\'))]' +//@[32:343) ObjectPropertySyntax +//@[32:46) IdentifierSyntax +//@[32:46) Identifier |subscriptionId| +//@[46:47) Colon |:| +//@[48:343) StringSyntax +//@[48:343) StringComplete |'[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),split(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,\'/\')[2],json(\'null\'))]'| +//@[343:344) NewLine |\n| + resourceGroup: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),split(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,\'/\')[4],json(\'null\'))]' +//@[32:342) ObjectPropertySyntax +//@[32:45) IdentifierSyntax +//@[32:45) Identifier |resourceGroup| +//@[45:46) Colon |:| +//@[47:342) StringSyntax +//@[47:342) StringComplete |'[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),split(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,\'/\')[4],json(\'null\'))]'| +//@[342:343) NewLine |\n| + dependsOn: [ +//@[32:162) ObjectPropertySyntax +//@[32:41) IdentifierSyntax +//@[32:41) Identifier |dependsOn| +//@[41:42) Colon |:| +//@[43:162) ArraySyntax +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + '[concat(subscription().displayName, \'-vnet\')]' +//@[34:83) ArrayItemSyntax +//@[34:83) StringSyntax +//@[34:83) StringComplete |'[concat(subscription().displayName, \'-vnet\')]'| +//@[83:84) NewLine |\n| + ] +//@[32:33) RightSquare |]| +//@[33:34) NewLine |\n| + properties: { +//@[32:5119) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:5119) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + mode: 'Incremental' +//@[34:53) ObjectPropertySyntax +//@[34:38) IdentifierSyntax +//@[34:38) Identifier |mode| +//@[38:39) Colon |:| +//@[40:53) StringSyntax +//@[40:53) StringComplete |'Incremental'| +//@[53:54) NewLine |\n| + expressionEvaluationOptions: { +//@[34:151) ObjectPropertySyntax +//@[34:61) IdentifierSyntax +//@[34:61) Identifier |expressionEvaluationOptions| +//@[61:62) Colon |:| +//@[63:151) ObjectSyntax +//@[63:64) LeftBrace |{| +//@[64:65) NewLine |\n| + scope: 'inner' +//@[36:50) ObjectPropertySyntax +//@[36:41) IdentifierSyntax +//@[36:41) Identifier |scope| +//@[41:42) Colon |:| +//@[43:50) StringSyntax +//@[43:50) StringComplete |'inner'| +//@[50:51) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + template: { +//@[34:2639) ObjectPropertySyntax +//@[34:42) IdentifierSyntax +//@[34:42) Identifier |template| +//@[42:43) Colon |:| +//@[44:2639) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[36:128) ObjectPropertySyntax +//@[36:45) StringSyntax +//@[36:45) StringComplete |'$schema'| +//@[45:46) Colon |:| +//@[47:128) StringSyntax +//@[47:128) StringComplete |'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[128:129) NewLine |\n| + contentVersion: '1.0.0.0' +//@[36:61) ObjectPropertySyntax +//@[36:50) IdentifierSyntax +//@[36:50) Identifier |contentVersion| +//@[50:51) Colon |:| +//@[52:61) StringSyntax +//@[52:61) StringComplete |'1.0.0.0'| +//@[61:62) NewLine |\n| + parameters: { +//@[36:1117) ObjectPropertySyntax +//@[36:46) IdentifierSyntax +//@[36:46) Identifier |parameters| +//@[46:47) Colon |:| +//@[48:1117) ObjectSyntax +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + remoteVirtualNetwork: { +//@[38:156) ObjectPropertySyntax +//@[38:58) IdentifierSyntax +//@[38:58) Identifier |remoteVirtualNetwork| +//@[58:59) Colon |:| +//@[60:156) ObjectSyntax +//@[60:61) LeftBrace |{| +//@[61:62) NewLine |\n| + type: 'string' +//@[40:54) ObjectPropertySyntax +//@[40:44) IdentifierSyntax +//@[40:44) Identifier |type| +//@[44:45) Colon |:| +//@[46:54) StringSyntax +//@[46:54) StringComplete |'string'| +//@[54:55) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + vWanVhubName: { +//@[38:205) ObjectPropertySyntax +//@[38:50) IdentifierSyntax +//@[38:50) Identifier |vWanVhubName| +//@[50:51) Colon |:| +//@[52:205) ObjectSyntax +//@[52:53) LeftBrace |{| +//@[53:54) NewLine |\n| + Type: 'string' +//@[40:54) ObjectPropertySyntax +//@[40:44) IdentifierSyntax +//@[40:44) Identifier |Type| +//@[44:45) Colon |:| +//@[46:54) StringSyntax +//@[46:54) StringComplete |'string'| +//@[54:55) NewLine |\n| + defaultValue: '' +//@[40:56) ObjectPropertySyntax +//@[40:52) IdentifierSyntax +//@[40:52) Identifier |defaultValue| +//@[52:53) Colon |:| +//@[54:56) StringSyntax +//@[54:56) StringComplete |''| +//@[56:57) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + allowHubToRemoteVnetTransit: { +//@[38:220) ObjectPropertySyntax +//@[38:65) IdentifierSyntax +//@[38:65) Identifier |allowHubToRemoteVnetTransit| +//@[65:66) Colon |:| +//@[67:220) ObjectSyntax +//@[67:68) LeftBrace |{| +//@[68:69) NewLine |\n| + Type: 'bool' +//@[40:52) ObjectPropertySyntax +//@[40:44) IdentifierSyntax +//@[40:44) Identifier |Type| +//@[44:45) Colon |:| +//@[46:52) StringSyntax +//@[46:52) StringComplete |'bool'| +//@[52:53) NewLine |\n| + defaultValue: true +//@[40:58) ObjectPropertySyntax +//@[40:52) IdentifierSyntax +//@[40:52) Identifier |defaultValue| +//@[52:53) Colon |:| +//@[54:58) BooleanLiteralSyntax +//@[54:58) TrueKeyword |true| +//@[58:59) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + allowRemoteVnetToUseHubVnetGateways: { +//@[38:229) ObjectPropertySyntax +//@[38:73) IdentifierSyntax +//@[38:73) Identifier |allowRemoteVnetToUseHubVnetGateways| +//@[73:74) Colon |:| +//@[75:229) ObjectSyntax +//@[75:76) LeftBrace |{| +//@[76:77) NewLine |\n| + Type: 'bool' +//@[40:52) ObjectPropertySyntax +//@[40:44) IdentifierSyntax +//@[40:44) Identifier |Type| +//@[44:45) Colon |:| +//@[46:52) StringSyntax +//@[46:52) StringComplete |'bool'| +//@[52:53) NewLine |\n| + defaultValue: false +//@[40:59) ObjectPropertySyntax +//@[40:52) IdentifierSyntax +//@[40:52) Identifier |defaultValue| +//@[52:53) Colon |:| +//@[54:59) BooleanLiteralSyntax +//@[54:59) FalseKeyword |false| +//@[59:60) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + enableInternetSecurity: { +//@[38:215) ObjectPropertySyntax +//@[38:60) IdentifierSyntax +//@[38:60) Identifier |enableInternetSecurity| +//@[60:61) Colon |:| +//@[62:215) ObjectSyntax +//@[62:63) LeftBrace |{| +//@[63:64) NewLine |\n| + Type: 'bool' +//@[40:52) ObjectPropertySyntax +//@[40:44) IdentifierSyntax +//@[40:44) Identifier |Type| +//@[44:45) Colon |:| +//@[46:52) StringSyntax +//@[46:52) StringComplete |'bool'| +//@[52:53) NewLine |\n| + defaultValue: true +//@[40:58) ObjectPropertySyntax +//@[40:52) IdentifierSyntax +//@[40:52) Identifier |defaultValue| +//@[52:53) Colon |:| +//@[54:58) BooleanLiteralSyntax +//@[54:58) TrueKeyword |true| +//@[58:59) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + variables: {} +//@[36:49) ObjectPropertySyntax +//@[36:45) IdentifierSyntax +//@[36:45) Identifier |variables| +//@[45:46) Colon |:| +//@[47:49) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) RightBrace |}| +//@[49:50) NewLine |\n| + resources: [ +//@[36:1150) ObjectPropertySyntax +//@[36:45) IdentifierSyntax +//@[36:45) Identifier |resources| +//@[45:46) Colon |:| +//@[47:1150) ArraySyntax +//@[47:48) LeftSquare |[| +//@[48:49) NewLine |\n| + { +//@[38:1063) ArrayItemSyntax +//@[38:1063) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'Microsoft.Network/virtualHubs/hubVirtualNetworkConnections' +//@[40:106) ObjectPropertySyntax +//@[40:44) IdentifierSyntax +//@[40:44) Identifier |type| +//@[44:45) Colon |:| +//@[46:106) StringSyntax +//@[46:106) StringComplete |'Microsoft.Network/virtualHubs/hubVirtualNetworkConnections'| +//@[106:107) NewLine |\n| + apiVersion: '2020-05-01' +//@[40:64) ObjectPropertySyntax +//@[40:50) IdentifierSyntax +//@[40:50) Identifier |apiVersion| +//@[50:51) Colon |:| +//@[52:64) StringSyntax +//@[52:64) StringComplete |'2020-05-01'| +//@[64:65) NewLine |\n| + name: '[[concat(parameters(\'vWanVhubName\'),\'/\',last(split(parameters(\'remoteVirtualNetwork\'),\'/\')))]' +//@[40:149) ObjectPropertySyntax +//@[40:44) IdentifierSyntax +//@[40:44) Identifier |name| +//@[44:45) Colon |:| +//@[46:149) StringSyntax +//@[46:149) StringComplete |'[[concat(parameters(\'vWanVhubName\'),\'/\',last(split(parameters(\'remoteVirtualNetwork\'),\'/\')))]'| +//@[149:150) NewLine |\n| + properties: { +//@[40:661) ObjectPropertySyntax +//@[40:50) IdentifierSyntax +//@[40:50) Identifier |properties| +//@[50:51) Colon |:| +//@[52:661) ObjectSyntax +//@[52:53) LeftBrace |{| +//@[53:54) NewLine |\n| + remoteVirtualNetwork: { +//@[42:199) ObjectPropertySyntax +//@[42:62) IdentifierSyntax +//@[42:62) Identifier |remoteVirtualNetwork| +//@[62:63) Colon |:| +//@[64:199) ObjectSyntax +//@[64:65) LeftBrace |{| +//@[65:66) NewLine |\n| + id: '[[parameters(\'remoteVirtualNetwork\')]' +//@[44:89) ObjectPropertySyntax +//@[44:46) IdentifierSyntax +//@[44:46) Identifier |id| +//@[46:47) Colon |:| +//@[48:89) StringSyntax +//@[48:89) StringComplete |'[[parameters(\'remoteVirtualNetwork\')]'| +//@[89:90) NewLine |\n| + } +//@[42:43) RightBrace |}| +//@[43:44) NewLine |\n| + allowHubToRemoteVnetTransit: '[[parameters(\'allowHubToRemoteVnetTransit\')]' +//@[42:119) ObjectPropertySyntax +//@[42:69) IdentifierSyntax +//@[42:69) Identifier |allowHubToRemoteVnetTransit| +//@[69:70) Colon |:| +//@[71:119) StringSyntax +//@[71:119) StringComplete |'[[parameters(\'allowHubToRemoteVnetTransit\')]'| +//@[119:120) NewLine |\n| + allowRemoteVnetToUseHubVnetGateways: '[[parameters(\'allowRemoteVnetToUseHubVnetGateways\')]' +//@[42:135) ObjectPropertySyntax +//@[42:77) IdentifierSyntax +//@[42:77) Identifier |allowRemoteVnetToUseHubVnetGateways| +//@[77:78) Colon |:| +//@[79:135) StringSyntax +//@[79:135) StringComplete |'[[parameters(\'allowRemoteVnetToUseHubVnetGateways\')]'| +//@[135:136) NewLine |\n| + enableInternetSecurity: '[[parameters(\'enableInternetSecurity\')]' +//@[42:109) ObjectPropertySyntax +//@[42:64) IdentifierSyntax +//@[42:64) Identifier |enableInternetSecurity| +//@[64:65) Colon |:| +//@[66:109) StringSyntax +//@[66:109) StringComplete |'[[parameters(\'enableInternetSecurity\')]'| +//@[109:110) NewLine |\n| + } +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + ] +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + outputs: {} +//@[36:47) ObjectPropertySyntax +//@[36:43) IdentifierSyntax +//@[36:43) Identifier |outputs| +//@[43:44) Colon |:| +//@[45:47) ObjectSyntax +//@[45:46) LeftBrace |{| +//@[46:47) RightBrace |}| +//@[47:48) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + parameters: { +//@[34:2193) ObjectPropertySyntax +//@[34:44) IdentifierSyntax +//@[34:44) Identifier |parameters| +//@[44:45) Colon |:| +//@[46:2193) ObjectSyntax +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + remoteVirtualNetwork: { +//@[36:322) ObjectPropertySyntax +//@[36:56) IdentifierSyntax +//@[36:56) Identifier |remoteVirtualNetwork| +//@[56:57) Colon |:| +//@[58:322) ObjectSyntax +//@[58:59) LeftBrace |{| +//@[59:60) NewLine |\n| + value: '[concat(subscription().id,\'/resourceGroups/\',variables(\'vNetRgName\'), \'/providers/\',\'Microsoft.Network/virtualNetworks/\', concat(subscription().displayName, \'-vnet\'))]' +//@[38:224) ObjectPropertySyntax +//@[38:43) IdentifierSyntax +//@[38:43) Identifier |value| +//@[43:44) Colon |:| +//@[45:224) StringSyntax +//@[45:224) StringComplete |'[concat(subscription().id,\'/resourceGroups/\',variables(\'vNetRgName\'), \'/providers/\',\'Microsoft.Network/virtualNetworks/\', concat(subscription().displayName, \'-vnet\'))]'| +//@[224:225) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + vWanVhubName: { +//@[36:430) ObjectPropertySyntax +//@[36:48) IdentifierSyntax +//@[36:48) Identifier |vWanVhubName| +//@[48:49) Colon |:| +//@[50:430) ObjectSyntax +//@[50:51) LeftBrace |{| +//@[51:52) NewLine |\n| + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),split(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,\'/\')[8],json(\'null\'))]' +//@[38:340) ObjectPropertySyntax +//@[38:43) IdentifierSyntax +//@[38:43) Identifier |value| +//@[43:44) Colon |:| +//@[45:340) StringSyntax +//@[45:340) StringComplete |'[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),split(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,\'/\')[8],json(\'null\'))]'| +//@[340:341) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + allowHubToRemoteVnetTransit: { +//@[36:449) ObjectPropertySyntax +//@[36:63) IdentifierSyntax +//@[36:63) Identifier |allowHubToRemoteVnetTransit| +//@[63:64) Colon |:| +//@[65:449) ObjectSyntax +//@[65:66) LeftBrace |{| +//@[66:67) NewLine |\n| + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.properties.allowHubToRemoteVnetTransit,json(\'null\'))]' +//@[38:344) ObjectPropertySyntax +//@[38:43) IdentifierSyntax +//@[38:43) Identifier |value| +//@[43:44) Colon |:| +//@[45:344) StringSyntax +//@[45:344) StringComplete |'[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.properties.allowHubToRemoteVnetTransit,json(\'null\'))]'| +//@[344:345) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + allowRemoteVnetToUseHubVnetGateways: { +//@[36:465) ObjectPropertySyntax +//@[36:71) IdentifierSyntax +//@[36:71) Identifier |allowRemoteVnetToUseHubVnetGateways| +//@[71:72) Colon |:| +//@[73:465) ObjectSyntax +//@[73:74) LeftBrace |{| +//@[74:75) NewLine |\n| + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.properties.allowRemoteVnetToUseHubVnetGateways,json(\'null\'))]' +//@[38:352) ObjectPropertySyntax +//@[38:43) IdentifierSyntax +//@[38:43) Identifier |value| +//@[43:44) Colon |:| +//@[45:352) StringSyntax +//@[45:352) StringComplete |'[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.properties.allowRemoteVnetToUseHubVnetGateways,json(\'null\'))]'| +//@[352:353) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + enableInternetSecurity: { +//@[36:439) ObjectPropertySyntax +//@[36:58) IdentifierSyntax +//@[36:58) Identifier |enableInternetSecurity| +//@[58:59) Colon |:| +//@[60:439) ObjectSyntax +//@[60:61) LeftBrace |{| +//@[61:62) NewLine |\n| + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.properties.enableInternetSecurity,json(\'null\'))]' +//@[38:339) ObjectPropertySyntax +//@[38:43) IdentifierSyntax +//@[38:43) Identifier |value| +//@[43:44) Colon |:| +//@[45:339) StringSyntax +//@[45:339) StringComplete |'[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.properties.enableInternetSecurity,json(\'null\'))]'| +//@[339:340) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:4562) ArrayItemSyntax +//@[30:4562) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + condition: '[and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\'),contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\'))]' +//@[32:292) ObjectPropertySyntax +//@[32:41) IdentifierSyntax +//@[32:41) Identifier |condition| +//@[41:42) Colon |:| +//@[43:292) StringSyntax +//@[43:292) StringComplete |'[and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\'),contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\'))]'| +//@[292:293) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[32:71) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:71) StringSyntax +//@[38:71) StringComplete |'Microsoft.Resources/deployments'| +//@[71:72) NewLine |\n| + apiVersion: '2020-06-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2020-06-01'| +//@[56:57) NewLine |\n| + name: '[concat(\'es-ipam-hub-\',subscription().displayName,\'-peering-\',copyIndex())]' +//@[32:119) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:119) StringSyntax +//@[38:119) StringComplete |'[concat(\'es-ipam-hub-\',subscription().displayName,\'-peering-\',copyIndex())]'| +//@[119:120) NewLine |\n| + subscriptionId: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\')),split(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,\'/\')[2],json(\'null\'))]' +//@[32:360) ObjectPropertySyntax +//@[32:46) IdentifierSyntax +//@[32:46) Identifier |subscriptionId| +//@[46:47) Colon |:| +//@[48:360) StringSyntax +//@[48:360) StringComplete |'[if(and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\')),split(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,\'/\')[2],json(\'null\'))]'| +//@[360:361) NewLine |\n| + resourceGroup: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\')),split(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,\'/\')[4],json(\'null\'))]' +//@[32:359) ObjectPropertySyntax +//@[32:45) IdentifierSyntax +//@[32:45) Identifier |resourceGroup| +//@[45:46) Colon |:| +//@[47:359) StringSyntax +//@[47:359) StringComplete |'[if(and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\')),split(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,\'/\')[4],json(\'null\'))]'| +//@[359:360) NewLine |\n| + dependsOn: [ +//@[32:162) ObjectPropertySyntax +//@[32:41) IdentifierSyntax +//@[32:41) Identifier |dependsOn| +//@[41:42) Colon |:| +//@[43:162) ArraySyntax +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + '[concat(subscription().displayName, \'-vnet\')]' +//@[34:83) ArrayItemSyntax +//@[34:83) StringSyntax +//@[34:83) StringComplete |'[concat(subscription().displayName, \'-vnet\')]'| +//@[83:84) NewLine |\n| + ] +//@[32:33) RightSquare |]| +//@[33:34) NewLine |\n| + properties: { +//@[32:3072) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:3072) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + mode: 'Incremental' +//@[34:53) ObjectPropertySyntax +//@[34:38) IdentifierSyntax +//@[34:38) Identifier |mode| +//@[38:39) Colon |:| +//@[40:53) StringSyntax +//@[40:53) StringComplete |'Incremental'| +//@[53:54) NewLine |\n| + expressionEvaluationOptions: { +//@[34:151) ObjectPropertySyntax +//@[34:61) IdentifierSyntax +//@[34:61) Identifier |expressionEvaluationOptions| +//@[61:62) Colon |:| +//@[63:151) ObjectSyntax +//@[63:64) LeftBrace |{| +//@[64:65) NewLine |\n| + scope: 'inner' +//@[36:50) ObjectPropertySyntax +//@[36:41) IdentifierSyntax +//@[36:41) Identifier |scope| +//@[41:42) Colon |:| +//@[43:50) StringSyntax +//@[43:50) StringComplete |'inner'| +//@[50:51) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + template: { +//@[34:1936) ObjectPropertySyntax +//@[34:42) IdentifierSyntax +//@[34:42) Identifier |template| +//@[42:43) Colon |:| +//@[44:1936) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[36:128) ObjectPropertySyntax +//@[36:45) StringSyntax +//@[36:45) StringComplete |'$schema'| +//@[45:46) Colon |:| +//@[47:128) StringSyntax +//@[47:128) StringComplete |'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[128:129) NewLine |\n| + contentVersion: '1.0.0.0' +//@[36:61) ObjectPropertySyntax +//@[36:50) IdentifierSyntax +//@[36:50) Identifier |contentVersion| +//@[50:51) Colon |:| +//@[52:61) StringSyntax +//@[52:61) StringComplete |'1.0.0.0'| +//@[61:62) NewLine |\n| + parameters: { +//@[36:508) ObjectPropertySyntax +//@[36:46) IdentifierSyntax +//@[36:46) Identifier |parameters| +//@[46:47) Colon |:| +//@[48:508) ObjectSyntax +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + remoteVirtualNetwork: { +//@[38:216) ObjectPropertySyntax +//@[38:58) IdentifierSyntax +//@[38:58) Identifier |remoteVirtualNetwork| +//@[58:59) Colon |:| +//@[60:216) ObjectSyntax +//@[60:61) LeftBrace |{| +//@[61:62) NewLine |\n| + Type: 'string' +//@[40:54) ObjectPropertySyntax +//@[40:44) IdentifierSyntax +//@[40:44) Identifier |Type| +//@[44:45) Colon |:| +//@[46:54) StringSyntax +//@[46:54) StringComplete |'string'| +//@[54:55) NewLine |\n| + defaultValue: false +//@[40:59) ObjectPropertySyntax +//@[40:52) IdentifierSyntax +//@[40:52) Identifier |defaultValue| +//@[52:53) Colon |:| +//@[54:59) BooleanLiteralSyntax +//@[54:59) FalseKeyword |false| +//@[59:60) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + hubName: { +//@[38:203) ObjectPropertySyntax +//@[38:45) IdentifierSyntax +//@[38:45) Identifier |hubName| +//@[45:46) Colon |:| +//@[47:203) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + Type: 'string' +//@[40:54) ObjectPropertySyntax +//@[40:44) IdentifierSyntax +//@[40:44) Identifier |Type| +//@[44:45) Colon |:| +//@[46:54) StringSyntax +//@[46:54) StringComplete |'string'| +//@[54:55) NewLine |\n| + defaultValue: false +//@[40:59) ObjectPropertySyntax +//@[40:52) IdentifierSyntax +//@[40:52) Identifier |defaultValue| +//@[52:53) Colon |:| +//@[54:59) BooleanLiteralSyntax +//@[54:59) FalseKeyword |false| +//@[59:60) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + variables: {} +//@[36:49) ObjectPropertySyntax +//@[36:45) IdentifierSyntax +//@[36:45) Identifier |variables| +//@[45:46) Colon |:| +//@[47:49) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) RightBrace |}| +//@[49:50) NewLine |\n| + resources: [ +//@[36:1056) ObjectPropertySyntax +//@[36:45) IdentifierSyntax +//@[36:45) Identifier |resources| +//@[45:46) Colon |:| +//@[47:1056) ArraySyntax +//@[47:48) LeftSquare |[| +//@[48:49) NewLine |\n| + { +//@[38:969) ArrayItemSyntax +//@[38:969) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' +//@[40:104) ObjectPropertySyntax +//@[40:44) IdentifierSyntax +//@[40:44) Identifier |type| +//@[44:45) Colon |:| +//@[46:104) StringSyntax +//@[46:104) StringComplete |'Microsoft.Network/virtualNetworks/virtualNetworkPeerings'| +//@[104:105) NewLine |\n| + name: '[[concat(parameters(\'hubName\'),\'/\',last(split(parameters(\'remoteVirtualNetwork\'),\'/\')))]' +//@[40:144) ObjectPropertySyntax +//@[40:44) IdentifierSyntax +//@[40:44) Identifier |name| +//@[44:45) Colon |:| +//@[46:144) StringSyntax +//@[46:144) StringComplete |'[[concat(parameters(\'hubName\'),\'/\',last(split(parameters(\'remoteVirtualNetwork\'),\'/\')))]'| +//@[144:145) NewLine |\n| + apiVersion: '2020-05-01' +//@[40:64) ObjectPropertySyntax +//@[40:50) IdentifierSyntax +//@[40:50) Identifier |apiVersion| +//@[50:51) Colon |:| +//@[52:64) StringSyntax +//@[52:64) StringComplete |'2020-05-01'| +//@[64:65) NewLine |\n| + properties: { +//@[40:574) ObjectPropertySyntax +//@[40:50) IdentifierSyntax +//@[40:50) Identifier |properties| +//@[50:51) Colon |:| +//@[52:574) ObjectSyntax +//@[52:53) LeftBrace |{| +//@[53:54) NewLine |\n| + allowVirtualNetworkAccess: true +//@[42:73) ObjectPropertySyntax +//@[42:67) IdentifierSyntax +//@[42:67) Identifier |allowVirtualNetworkAccess| +//@[67:68) Colon |:| +//@[69:73) BooleanLiteralSyntax +//@[69:73) TrueKeyword |true| +//@[73:74) NewLine |\n| + allowForwardedTraffic: true +//@[42:69) ObjectPropertySyntax +//@[42:63) IdentifierSyntax +//@[42:63) Identifier |allowForwardedTraffic| +//@[63:64) Colon |:| +//@[65:69) BooleanLiteralSyntax +//@[65:69) TrueKeyword |true| +//@[69:70) NewLine |\n| + allowGatewayTransit: true +//@[42:67) ObjectPropertySyntax +//@[42:61) IdentifierSyntax +//@[42:61) Identifier |allowGatewayTransit| +//@[61:62) Colon |:| +//@[63:67) BooleanLiteralSyntax +//@[63:67) TrueKeyword |true| +//@[67:68) NewLine |\n| + useRemoteGateways: false +//@[42:66) ObjectPropertySyntax +//@[42:59) IdentifierSyntax +//@[42:59) Identifier |useRemoteGateways| +//@[59:60) Colon |:| +//@[61:66) BooleanLiteralSyntax +//@[61:66) FalseKeyword |false| +//@[66:67) NewLine |\n| + remoteVirtualNetwork: { +//@[42:199) ObjectPropertySyntax +//@[42:62) IdentifierSyntax +//@[42:62) Identifier |remoteVirtualNetwork| +//@[62:63) Colon |:| +//@[64:199) ObjectSyntax +//@[64:65) LeftBrace |{| +//@[65:66) NewLine |\n| + id: '[[parameters(\'remoteVirtualNetwork\')]' +//@[44:89) ObjectPropertySyntax +//@[44:46) IdentifierSyntax +//@[44:46) Identifier |id| +//@[46:47) Colon |:| +//@[48:89) StringSyntax +//@[48:89) StringComplete |'[[parameters(\'remoteVirtualNetwork\')]'| +//@[89:90) NewLine |\n| + } +//@[42:43) RightBrace |}| +//@[43:44) NewLine |\n| + } +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + ] +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + outputs: {} +//@[36:47) ObjectPropertySyntax +//@[36:43) IdentifierSyntax +//@[36:43) Identifier |outputs| +//@[43:44) Colon |:| +//@[45:47) ObjectSyntax +//@[45:46) LeftBrace |{| +//@[46:47) RightBrace |}| +//@[47:48) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + parameters: { +//@[34:849) ObjectPropertySyntax +//@[34:44) IdentifierSyntax +//@[34:44) Identifier |parameters| +//@[44:45) Colon |:| +//@[46:849) ObjectSyntax +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + remoteVirtualNetwork: { +//@[36:322) ObjectPropertySyntax +//@[36:56) IdentifierSyntax +//@[36:56) Identifier |remoteVirtualNetwork| +//@[56:57) Colon |:| +//@[58:322) ObjectSyntax +//@[58:59) LeftBrace |{| +//@[59:60) NewLine |\n| + value: '[concat(subscription().id,\'/resourceGroups/\',variables(\'vNetRgName\'), \'/providers/\',\'Microsoft.Network/virtualNetworks/\', concat(subscription().displayName, \'-vnet\'))]' +//@[38:224) ObjectPropertySyntax +//@[38:43) IdentifierSyntax +//@[38:43) Identifier |value| +//@[43:44) Colon |:| +//@[45:224) StringSyntax +//@[45:224) StringComplete |'[concat(subscription().id,\'/resourceGroups/\',variables(\'vNetRgName\'), \'/providers/\',\'Microsoft.Network/virtualNetworks/\', concat(subscription().displayName, \'-vnet\'))]'| +//@[224:225) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + hubName: { +//@[36:442) ObjectPropertySyntax +//@[36:43) IdentifierSyntax +//@[36:43) Identifier |hubName| +//@[43:44) Colon |:| +//@[45:442) ObjectSyntax +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\')),split(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,\'/\')[8],json(\'null\'))]' +//@[38:357) ObjectPropertySyntax +//@[38:43) IdentifierSyntax +//@[38:43) Identifier |value| +//@[43:44) Colon |:| +//@[45:357) StringSyntax +//@[45:357) StringComplete |'[if(and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\')),split(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,\'/\')[8],json(\'null\'))]'| +//@[357:358) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + outputs: {} +//@[28:39) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |outputs| +//@[35:36) Colon |:| +//@[37:39) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + resourceGroup: '[variables(\'vNetRgName\')]' +//@[24:68) ObjectPropertySyntax +//@[24:37) IdentifierSyntax +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:68) StringSyntax +//@[39:68) StringComplete |'[variables(\'vNetRgName\')]'| +//@[68:69) NewLine |\n| + copy: { +//@[24:167) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |copy| +//@[28:29) Colon |:| +//@[30:167) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + name: 'ipam-loop' +//@[26:43) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |name| +//@[30:31) Colon |:| +//@[32:43) StringSyntax +//@[32:43) StringComplete |'ipam-loop'| +//@[43:44) NewLine |\n| + count: '[length(parameters(\'ipam\'))]' +//@[26:65) ObjectPropertySyntax +//@[26:31) IdentifierSyntax +//@[26:31) Identifier |count| +//@[31:32) Colon |:| +//@[33:65) StringSyntax +//@[33:65) StringComplete |'[length(parameters(\'ipam\'))]'| +//@[65:66) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + condition: '[if(and(not(empty(parameters(\'ipam\'))), equals(toLower(parameters(\'ipam\')[copyIndex()].name),toLower(variables(\'vNetName\')))),bool(\'true\'),bool(\'false\'))]' +//@[24:201) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |condition| +//@[33:34) Colon |:| +//@[35:201) StringSyntax +//@[35:201) StringComplete |'[if(and(not(empty(parameters(\'ipam\'))), equals(toLower(parameters(\'ipam\')[copyIndex()].name),toLower(variables(\'vNetName\')))),bool(\'true\'),bool(\'false\'))]'| +//@[201:202) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: { +//@[20:260) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:260) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) NewLine |\n| + ipam: { +//@[22:207) ObjectPropertySyntax +//@[22:26) IdentifierSyntax +//@[22:26) Identifier |ipam| +//@[26:27) Colon |:| +//@[28:207) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + condition: '[bool(\'true\')]' +//@[24:53) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |condition| +//@[33:34) Colon |:| +//@[35:53) StringSyntax +//@[35:53) StringComplete |'[bool(\'true\')]'| +//@[53:54) NewLine |\n| + type: 'Int' +//@[24:35) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:35) StringSyntax +//@[30:35) StringComplete |'Int'| +//@[35:36) NewLine |\n| + value: '[length(parameters(\'ipam\'))]' +//@[24:63) ObjectPropertySyntax +//@[24:29) IdentifierSyntax +//@[24:29) Identifier |value| +//@[29:30) Colon |:| +//@[31:63) StringSyntax +//@[31:63) StringComplete |'[length(parameters(\'ipam\'))]'| +//@[63:64) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-vNet' +//@[6:25) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:25) StringSyntax +//@[12:25) StringComplete |'Deploy-vNet'| +//@[25:26) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5211) ArrayItemSyntax +//@[4:5211) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:5173) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:5173) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploy the Virtual WAN in the specific region.' +//@[8:69) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:69) StringSyntax +//@[21:69) StringComplete |'Deploy the Virtual WAN in the specific region.'| +//@[69:70) NewLine |\n| + DisplayName: 'Deploy the Virtual WAN in the specific region' +//@[8:68) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:68) StringSyntax +//@[21:68) StringComplete |'Deploy the Virtual WAN in the specific region'| +//@[68:69) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1015) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1015) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + vwanname: { +//@[10:189) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |vwanname| +//@[18:19) Colon |:| +//@[20:189) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:128) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:128) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'vwanname' +//@[14:37) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:37) StringSyntax +//@[27:37) StringComplete |'vwanname'| +//@[37:38) NewLine |\n| + description: 'Name of the Virtual WAN' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Name of the Virtual WAN'| +//@[52:53) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + vwanRegion: { +//@[10:242) ObjectPropertySyntax +//@[10:20) IdentifierSyntax +//@[10:20) Identifier |vwanRegion| +//@[20:21) Colon |:| +//@[22:242) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:179) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:179) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'vwanRegion' +//@[14:39) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:39) StringSyntax +//@[27:39) StringComplete |'vwanRegion'| +//@[39:40) NewLine |\n| + description: 'Select Azure region for Virtual WAN' +//@[14:64) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:64) StringSyntax +//@[27:64) StringComplete |'Select Azure region for Virtual WAN'| +//@[64:65) NewLine |\n| + strongType: 'location' +//@[14:36) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:36) StringSyntax +//@[26:36) StringComplete |'location'| +//@[36:37) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + rgName: { +//@[10:194) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |rgName| +//@[16:17) Colon |:| +//@[18:194) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:135) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:135) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'rgName' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'rgName'| +//@[35:36) NewLine |\n| + description: 'Provide name for resource group.' +//@[14:61) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:61) StringSyntax +//@[27:61) StringComplete |'Provide name for resource group.'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:86) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:86) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:29) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringSyntax +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:3879) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:3879) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:184) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:184) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:156) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:156) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:121) ArrayItemSyntax +//@[14:121) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Resources/subscriptions' +//@[16:59) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringSyntax +//@[24:59) StringComplete |'Microsoft.Resources/subscriptions'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:3662) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:3662) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:3585) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:3585) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/virtualWans' +//@[14:51) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:51) StringSyntax +//@[20:51) StringComplete |'Microsoft.Network/virtualWans'| +//@[51:52) NewLine |\n| + deploymentScope: 'Subscription' +//@[14:45) ObjectPropertySyntax +//@[14:29) IdentifierSyntax +//@[14:29) Identifier |deploymentScope| +//@[29:30) Colon |:| +//@[31:45) StringSyntax +//@[31:45) StringComplete |'Subscription'| +//@[45:46) NewLine |\n| + existenceScope: 'ResourceGroup' +//@[14:45) ObjectPropertySyntax +//@[14:28) IdentifierSyntax +//@[14:28) Identifier |existenceScope| +//@[28:29) Colon |:| +//@[30:45) StringSyntax +//@[30:45) StringComplete |'ResourceGroup'| +//@[45:46) NewLine |\n| + name: '[parameters(\'vwanname\')]' +//@[14:48) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:48) StringSyntax +//@[20:48) StringComplete |'[parameters(\'vwanname\')]'| +//@[48:49) NewLine |\n| + resourceGroupName: '[parameters(\'rgName\')]' +//@[14:59) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |resourceGroupName| +//@[31:32) Colon |:| +//@[33:59) StringSyntax +//@[33:59) StringComplete |'[parameters(\'rgName\')]'| +//@[59:60) NewLine |\n| + roleDefinitionIds: [ +//@[14:156) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:156) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3138) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3138) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + location: 'northeurope' +//@[16:39) ObjectPropertySyntax +//@[16:24) IdentifierSyntax +//@[16:24) Identifier |location| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'northeurope'| +//@[39:40) NewLine |\n| + properties: { +//@[16:3054) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3054) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:387) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:387) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + rgName: { +//@[20:107) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |rgName| +//@[26:27) Colon |:| +//@[28:107) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'rgName\')]' +//@[22:55) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:55) StringSyntax +//@[29:55) StringComplete |'[parameters(\'rgName\')]'| +//@[55:56) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + vwanname: { +//@[20:111) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |vwanname| +//@[28:29) Colon |:| +//@[30:111) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[parameters(\'vwanname\')]' +//@[22:57) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:57) StringSyntax +//@[29:57) StringComplete |'[parameters(\'vwanname\')]'| +//@[57:58) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + vwanRegion: { +//@[20:115) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |vwanRegion| +//@[30:31) Colon |:| +//@[32:115) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + value: '[parameters(\'vwanRegion\')]' +//@[22:59) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:59) StringSyntax +//@[29:59) StringComplete |'[parameters(\'vwanRegion\')]'| +//@[59:60) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:2580) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2580) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' +//@[20:122) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:122) StringSyntax +//@[31:122) StringComplete |'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json'| +//@[122:123) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:346) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:346) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + rgName: { +//@[22:94) ObjectPropertySyntax +//@[22:28) IdentifierSyntax +//@[22:28) Identifier |rgName| +//@[28:29) Colon |:| +//@[30:94) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + vwanname: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |vwanname| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + vwanRegion: { +//@[22:98) ObjectPropertySyntax +//@[22:32) IdentifierSyntax +//@[22:32) Identifier |vwanRegion| +//@[32:33) Colon |:| +//@[34:98) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: { +//@[20:96) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:96) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) NewLine |\n| + vwansku: 'Standard' +//@[22:41) ObjectPropertySyntax +//@[22:29) IdentifierSyntax +//@[22:29) Identifier |vwansku| +//@[29:30) Colon |:| +//@[31:41) StringSyntax +//@[31:41) StringComplete |'Standard'| +//@[41:42) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:1885) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1885) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:319) ArrayItemSyntax +//@[22:319) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/resourceGroups' +//@[24:66) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:66) StringSyntax +//@[30:66) StringComplete |'Microsoft.Resources/resourceGroups'| +//@[66:67) NewLine |\n| + apiVersion: '2018-05-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2018-05-01'| +//@[48:49) NewLine |\n| + name: '[parameters(\'rgName\')]' +//@[24:56) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:56) StringSyntax +//@[30:56) StringComplete |'[parameters(\'rgName\')]'| +//@[56:57) NewLine |\n| + location: '[deployment().location]' +//@[24:59) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:59) StringSyntax +//@[34:59) StringComplete |'[deployment().location]'| +//@[59:60) NewLine |\n| + properties: {} +//@[24:38) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:38) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) RightBrace |}| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:1510) ArrayItemSyntax +//@[22:1510) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:63) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringSyntax +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2018-05-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2018-05-01'| +//@[48:49) NewLine |\n| + name: 'vwan' +//@[24:36) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:36) StringSyntax +//@[30:36) StringComplete |'vwan'| +//@[36:37) NewLine |\n| + resourceGroup: '[parameters(\'rgName\')]' +//@[24:65) ObjectPropertySyntax +//@[24:37) IdentifierSyntax +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:65) StringSyntax +//@[39:65) StringComplete |'[parameters(\'rgName\')]'| +//@[65:66) NewLine |\n| + dependsOn: [ +//@[24:168) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:168) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' +//@[26:105) ArrayItemSyntax +//@[26:105) StringSyntax +//@[26:105) StringComplete |'[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]'| +//@[105:106) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:1077) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1077) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:45) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringSyntax +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:967) ObjectPropertySyntax +//@[26:34) IdentifierSyntax +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:967) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json' +//@[28:118) ObjectPropertySyntax +//@[28:37) StringSyntax +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:118) StringSyntax +//@[39:118) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json'| +//@[118:119) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:53) ObjectPropertySyntax +//@[28:42) IdentifierSyntax +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringSyntax +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:42) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:42) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + resources: [ +//@[28:645) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:645) ArraySyntax +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:574) ArrayItemSyntax +//@[30:574) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Network/virtualWans' +//@[32:69) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:69) StringSyntax +//@[38:69) StringComplete |'Microsoft.Network/virtualWans'| +//@[69:70) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + location: '[parameters(\'vwanRegion\')]' +//@[32:72) ObjectPropertySyntax +//@[32:40) IdentifierSyntax +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:72) StringSyntax +//@[42:72) StringComplete |'[parameters(\'vwanRegion\')]'| +//@[72:73) NewLine |\n| + name: '[parameters(\'vwanname\')]' +//@[32:66) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:66) StringSyntax +//@[38:66) StringComplete |'[parameters(\'vwanname\')]'| +//@[66:67) NewLine |\n| + properties: { +//@[32:243) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:243) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + virtualHubs: [] +//@[34:49) ObjectPropertySyntax +//@[34:45) IdentifierSyntax +//@[34:45) Identifier |virtualHubs| +//@[45:46) Colon |:| +//@[47:49) ArraySyntax +//@[47:48) LeftSquare |[| +//@[48:49) RightSquare |]| +//@[49:50) NewLine |\n| + vpnSites: [] +//@[34:46) ObjectPropertySyntax +//@[34:42) IdentifierSyntax +//@[34:42) Identifier |vpnSites| +//@[42:43) Colon |:| +//@[44:46) ArraySyntax +//@[44:45) LeftSquare |[| +//@[45:46) RightSquare |]| +//@[46:47) NewLine |\n| + type: '[variables(\'vwansku\')]' +//@[34:66) ObjectPropertySyntax +//@[34:38) IdentifierSyntax +//@[34:38) Identifier |type| +//@[38:39) Colon |:| +//@[40:66) StringSyntax +//@[40:66) StringComplete |'[variables(\'vwansku\')]'| +//@[66:67) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + outputs: {} +//@[28:39) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |outputs| +//@[35:36) Colon |:| +//@[37:39) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-vWAN' +//@[6:25) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:25) StringSyntax +//@[12:25) StringComplete |'Deploy-vWAN'| +//@[25:26) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:12135) ArrayItemSyntax +//@[4:12135) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:12097) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:12097) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploy Virtual Hub network with Virtual Wan and Gateway and Firewall configured in the desired region. ' +//@[8:126) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:126) StringSyntax +//@[21:126) StringComplete |'Deploy Virtual Hub network with Virtual Wan and Gateway and Firewall configured in the desired region. '| +//@[126:127) NewLine |\n| + DisplayName: 'Deploy Virtual Hub network with Virtual Wan and Gateway and Firewall configured.' +//@[8:103) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:103) StringSyntax +//@[21:103) StringComplete |'Deploy Virtual Hub network with Virtual Wan and Gateway and Firewall configured.'| +//@[103:104) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1854) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1854) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + vwanname: { +//@[10:189) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |vwanname| +//@[18:19) Colon |:| +//@[20:189) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:128) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:128) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'vwanname' +//@[14:37) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:37) StringSyntax +//@[27:37) StringComplete |'vwanname'| +//@[37:38) NewLine |\n| + description: 'Name of the Virtual WAN' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Name of the Virtual WAN'| +//@[52:53) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + vHubName: { +//@[10:211) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |vHubName| +//@[18:19) Colon |:| +//@[20:211) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:121) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:121) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'vHubName' +//@[14:37) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:37) StringSyntax +//@[27:37) StringComplete |'vHubName'| +//@[37:38) NewLine |\n| + description: 'Name of the vHUB' +//@[14:45) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:45) StringSyntax +//@[27:45) StringComplete |'Name of the vHUB'| +//@[45:46) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: '' +//@[12:28) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:28) StringSyntax +//@[26:28) StringComplete |''| +//@[28:29) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + vHUB: { +//@[10:192) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |vHUB| +//@[14:15) Colon |:| +//@[16:192) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + type: 'Object' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'Object'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:135) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:135) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'vHUB' +//@[14:33) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:33) StringSyntax +//@[27:33) StringComplete |'vHUB'| +//@[33:34) NewLine |\n| + description: 'Object describing Virtual WAN vHUB' +//@[14:63) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:63) StringSyntax +//@[27:63) StringComplete |'Object describing Virtual WAN vHUB'| +//@[63:64) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + vpngw: { +//@[10:218) ObjectPropertySyntax +//@[10:15) IdentifierSyntax +//@[10:15) Identifier |vpngw| +//@[15:16) Colon |:| +//@[17:218) ObjectSyntax +//@[17:18) LeftBrace |{| +//@[18:19) NewLine |\n| + type: 'Object' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'Object'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:131) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:131) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'vpngw' +//@[14:34) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:34) StringSyntax +//@[27:34) StringComplete |'vpngw'| +//@[34:35) NewLine |\n| + description: 'Object describing VPN gateway' +//@[14:58) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:58) StringSyntax +//@[27:58) StringComplete |'Object describing VPN gateway'| +//@[58:59) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: {} +//@[12:28) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:28) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) RightBrace |}| +//@[28:29) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + ergw: { +//@[10:225) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |ergw| +//@[14:15) Colon |:| +//@[16:225) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + type: 'Object' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'Object'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:139) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:139) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'ergw' +//@[14:33) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:33) StringSyntax +//@[27:33) StringComplete |'ergw'| +//@[33:34) NewLine |\n| + description: 'Object describing ExpressRoute gateway' +//@[14:67) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:67) StringSyntax +//@[27:67) StringComplete |'Object describing ExpressRoute gateway'| +//@[67:68) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: {} +//@[12:28) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:28) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) RightBrace |}| +//@[28:29) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + azfw: { +//@[10:231) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |azfw| +//@[14:15) Colon |:| +//@[16:231) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + type: 'Object' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'Object'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'azfw' +//@[14:33) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:33) StringSyntax +//@[27:33) StringComplete |'azfw'| +//@[33:34) NewLine |\n| + description: 'Object describing the Azure Firewall in vHUB' +//@[14:73) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:73) StringSyntax +//@[27:73) StringComplete |'Object describing the Azure Firewall in vHUB'| +//@[73:74) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: {} +//@[12:28) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:28) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) RightBrace |}| +//@[28:29) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + rgName: { +//@[10:194) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |rgName| +//@[16:17) Colon |:| +//@[18:194) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:135) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:135) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'rgName' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'rgName'| +//@[35:36) NewLine |\n| + description: 'Provide name for resource group.' +//@[14:61) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:61) StringSyntax +//@[27:61) StringComplete |'Provide name for resource group.'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:86) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:86) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:29) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringSyntax +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:9872) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:9872) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:184) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:184) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:156) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:156) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:121) ArrayItemSyntax +//@[14:121) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Resources/subscriptions' +//@[16:59) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringSyntax +//@[24:59) StringComplete |'Microsoft.Resources/subscriptions'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:9655) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:9655) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:9578) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:9578) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/virtualHubs' +//@[14:51) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:51) StringSyntax +//@[20:51) StringComplete |'Microsoft.Network/virtualHubs'| +//@[51:52) NewLine |\n| + name: '[parameters(\'vHubName\')]' +//@[14:48) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:48) StringSyntax +//@[20:48) StringComplete |'[parameters(\'vHubName\')]'| +//@[48:49) NewLine |\n| + deploymentScope: 'Subscription' +//@[14:45) ObjectPropertySyntax +//@[14:29) IdentifierSyntax +//@[14:29) Identifier |deploymentScope| +//@[29:30) Colon |:| +//@[31:45) StringSyntax +//@[31:45) StringComplete |'Subscription'| +//@[45:46) NewLine |\n| + existenceScope: 'ResourceGroup' +//@[14:45) ObjectPropertySyntax +//@[14:28) IdentifierSyntax +//@[14:28) Identifier |existenceScope| +//@[28:29) Colon |:| +//@[30:45) StringSyntax +//@[30:45) StringComplete |'ResourceGroup'| +//@[45:46) NewLine |\n| + ResourceGroupName: '[parameters(\'rgName\')]' +//@[14:59) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |ResourceGroupName| +//@[31:32) Colon |:| +//@[33:59) StringSyntax +//@[33:59) StringComplete |'[parameters(\'rgName\')]'| +//@[59:60) NewLine |\n| + roleDefinitionIds: [ +//@[14:156) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:156) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:9131) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:9131) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + location: 'northeurope' +//@[16:39) ObjectPropertySyntax +//@[16:24) IdentifierSyntax +//@[16:24) Identifier |location| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'northeurope'| +//@[39:40) NewLine |\n| + properties: { +//@[16:9047) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:9047) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:801) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:801) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + rgName: { +//@[20:107) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |rgName| +//@[26:27) Colon |:| +//@[28:107) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'rgName\')]' +//@[22:55) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:55) StringSyntax +//@[29:55) StringComplete |'[parameters(\'rgName\')]'| +//@[55:56) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + vwanname: { +//@[20:111) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |vwanname| +//@[28:29) Colon |:| +//@[30:111) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[parameters(\'vwanname\')]' +//@[22:57) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:57) StringSyntax +//@[29:57) StringComplete |'[parameters(\'vwanname\')]'| +//@[57:58) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + vHUB: { +//@[20:103) ObjectPropertySyntax +//@[20:24) IdentifierSyntax +//@[20:24) Identifier |vHUB| +//@[24:25) Colon |:| +//@[26:103) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + value: '[parameters(\'vHUB\')]' +//@[22:53) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:53) StringSyntax +//@[29:53) StringComplete |'[parameters(\'vHUB\')]'| +//@[53:54) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + vpngw: { +//@[20:105) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |vpngw| +//@[25:26) Colon |:| +//@[27:105) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'vpngw\')]' +//@[22:54) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:54) StringSyntax +//@[29:54) StringComplete |'[parameters(\'vpngw\')]'| +//@[54:55) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + ergw: { +//@[20:103) ObjectPropertySyntax +//@[20:24) IdentifierSyntax +//@[20:24) Identifier |ergw| +//@[24:25) Colon |:| +//@[26:103) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + value: '[parameters(\'ergw\')]' +//@[22:53) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:53) StringSyntax +//@[29:53) StringComplete |'[parameters(\'ergw\')]'| +//@[53:54) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + azfw: { +//@[20:103) ObjectPropertySyntax +//@[20:24) IdentifierSyntax +//@[20:24) Identifier |azfw| +//@[24:25) Colon |:| +//@[26:103) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + value: '[parameters(\'azfw\')]' +//@[22:53) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:53) StringSyntax +//@[29:53) StringComplete |'[parameters(\'azfw\')]'| +//@[53:54) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + vHUBName: { +//@[20:111) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |vHUBName| +//@[28:29) Colon |:| +//@[30:111) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[parameters(\'vHUBName\')]' +//@[22:57) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:57) StringSyntax +//@[29:57) StringComplete |'[parameters(\'vHUBName\')]'| +//@[57:58) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:8159) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:8159) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' +//@[20:122) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:122) StringSyntax +//@[31:122) StringComplete |'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json'| +//@[122:123) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:1882) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:1882) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + vwanname: { +//@[22:223) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |vwanname| +//@[30:31) Colon |:| +//@[32:223) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:126) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:126) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'Name of the Virtual WAN' +//@[26:64) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:64) StringSyntax +//@[39:64) StringComplete |'Name of the Virtual WAN'| +//@[64:65) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + vHUB: { +//@[22:230) ObjectPropertySyntax +//@[22:26) IdentifierSyntax +//@[22:26) Identifier |vHUB| +//@[26:27) Colon |:| +//@[28:230) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + type: 'object' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'object'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:137) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:137) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'Object describing Virtual WAN vHUB' +//@[26:75) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:75) StringSyntax +//@[39:75) StringComplete |'Object describing Virtual WAN vHUB'| +//@[75:76) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + vpngw: { +//@[22:267) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |vpngw| +//@[27:28) Colon |:| +//@[29:267) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) NewLine |\n| + type: 'object' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'object'| +//@[38:39) NewLine |\n| + defaultValue: {} +//@[24:40) ObjectPropertySyntax +//@[24:36) IdentifierSyntax +//@[24:36) Identifier |defaultValue| +//@[36:37) Colon |:| +//@[38:40) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + metadata: { +//@[24:132) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:132) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'Object describing VPN gateway' +//@[26:70) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'Object describing VPN gateway'| +//@[70:71) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ergw: { +//@[22:275) ObjectPropertySyntax +//@[22:26) IdentifierSyntax +//@[22:26) Identifier |ergw| +//@[26:27) Colon |:| +//@[28:275) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + type: 'object' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'object'| +//@[38:39) NewLine |\n| + defaultValue: {} +//@[24:40) ObjectPropertySyntax +//@[24:36) IdentifierSyntax +//@[24:36) Identifier |defaultValue| +//@[36:37) Colon |:| +//@[38:40) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + metadata: { +//@[24:141) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:141) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'Object describing ExpressRoute gateway' +//@[26:79) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:79) StringSyntax +//@[39:79) StringComplete |'Object describing ExpressRoute gateway'| +//@[79:80) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + azfw: { +//@[22:281) ObjectPropertySyntax +//@[22:26) IdentifierSyntax +//@[22:26) Identifier |azfw| +//@[26:27) Colon |:| +//@[28:281) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + type: 'object' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'object'| +//@[38:39) NewLine |\n| + defaultValue: {} +//@[24:40) ObjectPropertySyntax +//@[24:36) IdentifierSyntax +//@[24:36) Identifier |defaultValue| +//@[36:37) Colon |:| +//@[38:40) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + metadata: { +//@[24:147) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:147) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'Object describing the Azure Firewall in vHUB' +//@[26:85) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:85) StringSyntax +//@[39:85) StringComplete |'Object describing the Azure Firewall in vHUB'| +//@[85:86) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + rgName: { +//@[22:278) ObjectPropertySyntax +//@[22:28) IdentifierSyntax +//@[22:28) Identifier |rgName| +//@[28:29) Colon |:| +//@[30:278) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'String' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'String'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:183) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:183) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + displayName: 'rgName' +//@[26:47) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |displayName| +//@[37:38) Colon |:| +//@[39:47) StringSyntax +//@[39:47) StringComplete |'rgName'| +//@[47:48) NewLine |\n| + description: 'Provide name for resource group.' +//@[26:73) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'Provide name for resource group.'| +//@[73:74) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + vHUBName: { +//@[22:266) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |vHUBName| +//@[30:31) Colon |:| +//@[32:266) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'String' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'String'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:169) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:169) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + displayName: 'vHUBName' +//@[26:49) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |displayName| +//@[37:38) Colon |:| +//@[39:49) StringSyntax +//@[39:49) StringComplete |'vHUBName'| +//@[49:50) NewLine |\n| + description: 'Name of the vHUB' +//@[26:57) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:57) StringSyntax +//@[39:57) StringComplete |'Name of the vHUB'| +//@[57:58) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: { +//@[20:455) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:455) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) NewLine |\n| + vhubsku: 'Standard' +//@[22:41) ObjectPropertySyntax +//@[22:29) IdentifierSyntax +//@[22:29) Identifier |vhubsku| +//@[29:30) Colon |:| +//@[31:41) StringSyntax +//@[31:41) StringComplete |'Standard'| +//@[41:42) NewLine |\n| + vwanresourceid: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'),\'/providers/Microsoft.Network/virtualWans/\',parameters(\'vwanname\'))]' +//@[22:182) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |vwanresourceid| +//@[36:37) Colon |:| +//@[38:182) StringSyntax +//@[38:182) StringComplete |'[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'),\'/providers/Microsoft.Network/virtualWans/\',parameters(\'vwanname\'))]'| +//@[182:183) NewLine |\n| + vwanhub: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'),\'/providers/Microsoft.Network/virtualHubs/\',parameters(\'vHUBName\'))]' +//@[22:175) ObjectPropertySyntax +//@[22:29) IdentifierSyntax +//@[22:29) Identifier |vwanhub| +//@[29:30) Colon |:| +//@[31:175) StringSyntax +//@[31:175) StringComplete |'[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'),\'/providers/Microsoft.Network/virtualHubs/\',parameters(\'vHUBName\'))]'| +//@[175:176) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:5601) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:5601) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:319) ArrayItemSyntax +//@[22:319) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/resourceGroups' +//@[24:66) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:66) StringSyntax +//@[30:66) StringComplete |'Microsoft.Resources/resourceGroups'| +//@[66:67) NewLine |\n| + apiVersion: '2018-05-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2018-05-01'| +//@[48:49) NewLine |\n| + name: '[parameters(\'rgName\')]' +//@[24:56) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:56) StringSyntax +//@[30:56) StringComplete |'[parameters(\'rgName\')]'| +//@[56:57) NewLine |\n| + location: '[deployment().location]' +//@[24:59) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:59) StringSyntax +//@[34:59) StringComplete |'[deployment().location]'| +//@[59:60) NewLine |\n| + properties: {} +//@[24:38) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:38) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) RightBrace |}| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:1716) ArrayItemSyntax +//@[22:1716) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:63) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringSyntax +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2018-05-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2018-05-01'| +//@[48:49) NewLine |\n| + name: '[concat(\'vHUBdeploy-\',parameters(\'vHUB\').location)]' +//@[24:87) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:87) StringSyntax +//@[30:87) StringComplete |'[concat(\'vHUBdeploy-\',parameters(\'vHUB\').location)]'| +//@[87:88) NewLine |\n| + resourceGroup: '[parameters(\'rgName\')]' +//@[24:65) ObjectPropertySyntax +//@[24:37) IdentifierSyntax +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:65) StringSyntax +//@[39:65) StringComplete |'[parameters(\'rgName\')]'| +//@[65:66) NewLine |\n| + dependsOn: [ +//@[24:168) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:168) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' +//@[26:105) ArrayItemSyntax +//@[26:105) StringSyntax +//@[26:105) StringComplete |'[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]'| +//@[105:106) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:1232) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1232) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:45) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringSyntax +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:1122) ObjectPropertySyntax +//@[26:34) IdentifierSyntax +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:1122) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[28:120) ObjectPropertySyntax +//@[28:37) StringSyntax +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:120) StringSyntax +//@[39:120) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[120:121) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:53) ObjectPropertySyntax +//@[28:42) IdentifierSyntax +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringSyntax +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:42) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:42) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:41) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:41) ObjectSyntax +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:796) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:796) ArraySyntax +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:725) ArrayItemSyntax +//@[30:725) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Network/virtualHubs' +//@[32:69) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:69) StringSyntax +//@[38:69) StringComplete |'Microsoft.Network/virtualHubs'| +//@[69:70) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + location: '[parameters(\'vHUB\').location]' +//@[32:75) ObjectPropertySyntax +//@[32:40) IdentifierSyntax +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:75) StringSyntax +//@[42:75) StringComplete |'[parameters(\'vHUB\').location]'| +//@[75:76) NewLine |\n| + name: '[parameters(\'vHUBname\')]' +//@[32:66) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:66) StringSyntax +//@[38:66) StringComplete |'[parameters(\'vHUBname\')]'| +//@[66:67) NewLine |\n| + properties: { +//@[32:391) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:391) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + virtualWan: { +//@[34:157) ObjectPropertySyntax +//@[34:44) IdentifierSyntax +//@[34:44) Identifier |virtualWan| +//@[44:45) Colon |:| +//@[46:157) ObjectSyntax +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + id: '[variables(\'vwanresourceid\')]' +//@[36:73) ObjectPropertySyntax +//@[36:38) IdentifierSyntax +//@[36:38) Identifier |id| +//@[38:39) Colon |:| +//@[40:73) StringSyntax +//@[40:73) StringComplete |'[variables(\'vwanresourceid\')]'| +//@[73:74) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + addressPrefix: '[parameters(\'vHUB\').addressPrefix]' +//@[34:87) ObjectPropertySyntax +//@[34:47) IdentifierSyntax +//@[34:47) Identifier |addressPrefix| +//@[47:48) Colon |:| +//@[49:87) StringSyntax +//@[49:87) StringComplete |'[parameters(\'vHUB\').addressPrefix]'| +//@[87:88) NewLine |\n| + sku: '[variables(\'vhubsku\')]' +//@[34:65) ObjectPropertySyntax +//@[34:37) IdentifierSyntax +//@[34:37) Identifier |sku| +//@[37:38) Colon |:| +//@[39:65) StringSyntax +//@[39:65) StringComplete |'[variables(\'vhubsku\')]'| +//@[65:66) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:1791) ArrayItemSyntax +//@[22:1791) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:63) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringSyntax +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2018-05-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2018-05-01'| +//@[48:49) NewLine |\n| + condition: '[greater(length(parameters(\'vpngw\')),0)]' +//@[24:79) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |condition| +//@[33:34) Colon |:| +//@[35:79) StringSyntax +//@[35:79) StringComplete |'[greater(length(parameters(\'vpngw\')),0)]'| +//@[79:80) NewLine |\n| + resourceGroup: '[parameters(\'rgName\')]' +//@[24:65) ObjectPropertySyntax +//@[24:37) IdentifierSyntax +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:65) StringSyntax +//@[39:65) StringComplete |'[parameters(\'rgName\')]'| +//@[65:66) NewLine |\n| + dependsOn: [ +//@[24:146) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:146) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(\'vHUBdeploy-\',parameters(\'vHUB\').location)]' +//@[26:83) ArrayItemSyntax +//@[26:83) StringSyntax +//@[26:83) StringComplete |'[concat(\'vHUBdeploy-\',parameters(\'vHUB\').location)]'| +//@[83:84) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + name: '[concat(parameters(\'vHUBName\'),\'-vpngw\')]' +//@[24:77) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:77) StringSyntax +//@[30:77) StringComplete |'[concat(parameters(\'vHUBName\'),\'-vpngw\')]'| +//@[77:78) NewLine |\n| + properties: { +//@[24:1259) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1259) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:45) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringSyntax +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:1149) ObjectPropertySyntax +//@[26:34) IdentifierSyntax +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:1149) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[28:120) ObjectPropertySyntax +//@[28:37) StringSyntax +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:120) StringSyntax +//@[39:120) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[120:121) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:53) ObjectPropertySyntax +//@[28:42) IdentifierSyntax +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringSyntax +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:42) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:42) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:41) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:41) ObjectSyntax +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:823) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:823) ArraySyntax +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:752) ArrayItemSyntax +//@[30:752) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Network/vpnGateways' +//@[32:69) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:69) StringSyntax +//@[38:69) StringComplete |'Microsoft.Network/vpnGateways'| +//@[69:70) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + location: '[parameters(\'vHUB\').location]' +//@[32:75) ObjectPropertySyntax +//@[32:40) IdentifierSyntax +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:75) StringSyntax +//@[42:75) StringComplete |'[parameters(\'vHUB\').location]'| +//@[75:76) NewLine |\n| + name: '[parameters(\'vpngw\').name]' +//@[32:68) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:68) StringSyntax +//@[38:68) StringComplete |'[parameters(\'vpngw\').name]'| +//@[68:69) NewLine |\n| + properties: { +//@[32:416) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:416) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + virtualHub: { +//@[34:150) ObjectPropertySyntax +//@[34:44) IdentifierSyntax +//@[34:44) Identifier |virtualHub| +//@[44:45) Colon |:| +//@[46:150) ObjectSyntax +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + id: '[variables(\'vwanhub\')]' +//@[36:66) ObjectPropertySyntax +//@[36:38) IdentifierSyntax +//@[36:38) Identifier |id| +//@[38:39) Colon |:| +//@[40:66) StringSyntax +//@[40:66) StringComplete |'[variables(\'vwanhub\')]'| +//@[66:67) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + bgpSettings: '[parameters(\'vpngw\').bgpSettings]' +//@[34:84) ObjectPropertySyntax +//@[34:45) IdentifierSyntax +//@[34:45) Identifier |bgpSettings| +//@[45:46) Colon |:| +//@[47:84) StringSyntax +//@[47:84) StringComplete |'[parameters(\'vpngw\').bgpSettings]'| +//@[84:85) NewLine |\n| + vpnGatewayScaleUnit: '[parameters(\'vpngw\').vpnGatewayScaleUnit]' +//@[34:100) ObjectPropertySyntax +//@[34:53) IdentifierSyntax +//@[34:53) Identifier |vpnGatewayScaleUnit| +//@[53:54) Colon |:| +//@[55:100) StringSyntax +//@[55:100) StringComplete |'[parameters(\'vpngw\').vpnGatewayScaleUnit]'| +//@[100:101) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:1717) ArrayItemSyntax +//@[22:1717) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:63) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringSyntax +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2018-05-01' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2018-05-01'| +//@[48:49) NewLine |\n| + condition: '[greater(length(parameters(\'ergw\')),0)]' +//@[24:78) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |condition| +//@[33:34) Colon |:| +//@[35:78) StringSyntax +//@[35:78) StringComplete |'[greater(length(parameters(\'ergw\')),0)]'| +//@[78:79) NewLine |\n| + resourceGroup: '[parameters(\'rgName\')]' +//@[24:65) ObjectPropertySyntax +//@[24:37) IdentifierSyntax +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:65) StringSyntax +//@[39:65) StringComplete |'[parameters(\'rgName\')]'| +//@[65:66) NewLine |\n| + dependsOn: [ +//@[24:146) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:146) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(\'vHUBdeploy-\',parameters(\'vHUB\').location)]' +//@[26:83) ArrayItemSyntax +//@[26:83) StringSyntax +//@[26:83) StringComplete |'[concat(\'vHUBdeploy-\',parameters(\'vHUB\').location)]'| +//@[83:84) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + name: '[concat(parameters(\'vHUBName\'),\'-ergw\')]' +//@[24:76) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:76) StringSyntax +//@[30:76) StringComplete |'[concat(parameters(\'vHUBName\'),\'-ergw\')]'| +//@[76:77) NewLine |\n| + properties: { +//@[24:1187) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1187) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:45) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringSyntax +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:1077) ObjectPropertySyntax +//@[26:34) IdentifierSyntax +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:1077) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[28:120) ObjectPropertySyntax +//@[28:37) StringSyntax +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:120) StringSyntax +//@[39:120) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[120:121) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:53) ObjectPropertySyntax +//@[28:42) IdentifierSyntax +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringSyntax +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:42) ObjectPropertySyntax +//@[28:38) IdentifierSyntax +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:42) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:41) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:41) ObjectSyntax +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:751) ObjectPropertySyntax +//@[28:37) IdentifierSyntax +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:751) ArraySyntax +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:680) ArrayItemSyntax +//@[30:680) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Network/expressRouteGateways' +//@[32:78) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:78) StringSyntax +//@[38:78) StringComplete |'Microsoft.Network/expressRouteGateways'| +//@[78:79) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:56) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringSyntax +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + location: '[parameters(\'vHUB\').location]' +//@[32:75) ObjectPropertySyntax +//@[32:40) IdentifierSyntax +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:75) StringSyntax +//@[42:75) StringComplete |'[parameters(\'vHUB\').location]'| +//@[75:76) NewLine |\n| + name: '[parameters(\'ergw\').name]' +//@[32:67) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:67) StringSyntax +//@[38:67) StringComplete |'[parameters(\'ergw\').name]'| +//@[67:68) NewLine |\n| + properties: { +//@[32:336) ObjectPropertySyntax +//@[32:42) IdentifierSyntax +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:336) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + virtualHub: { +//@[34:150) ObjectPropertySyntax +//@[34:44) IdentifierSyntax +//@[34:44) Identifier |virtualHub| +//@[44:45) Colon |:| +//@[46:150) ObjectSyntax +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + id: '[variables(\'vwanhub\')]' +//@[36:66) ObjectPropertySyntax +//@[36:38) IdentifierSyntax +//@[36:38) Identifier |id| +//@[38:39) Colon |:| +//@[40:66) StringSyntax +//@[40:66) StringComplete |'[variables(\'vwanhub\')]'| +//@[66:67) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + autoScaleConfiguration: '[parameters(\'ergw\').autoScaleConfiguration]' +//@[34:105) ObjectPropertySyntax +//@[34:56) IdentifierSyntax +//@[34:56) Identifier |autoScaleConfiguration| +//@[56:57) Colon |:| +//@[58:105) StringSyntax +//@[58:105) StringComplete |'[parameters(\'ergw\').autoScaleConfiguration]'| +//@[105:106) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-vHUB' +//@[6:25) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:25) StringSyntax +//@[12:25) StringComplete |'Deploy-vHUB'| +//@[25:26) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5804) ArrayItemSyntax +//@[4:5804) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:5754) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:5754) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Virtual Machine Scale Sets to stream to a Log Analytics workspace when any Virtual Machine Scale Sets which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:300) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:300) StringSyntax +//@[21:300) StringComplete |'Deploys the diagnostic settings for Virtual Machine Scale Sets to stream to a Log Analytics workspace when any Virtual Machine Scale Sets which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[300:301) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Virtual Machine Scale Sets to Log Analytics workspace' +//@[8:107) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:107) StringSyntax +//@[21:107) StringComplete |'Deploy Diagnostic Settings for Virtual Machine Scale Sets to Log Analytics workspace'| +//@[107:108) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1472) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1472) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:3730) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:3730) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:117) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:117) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Compute/virtualMachineScaleSets' +//@[12:63) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:63) StringSyntax +//@[20:63) StringComplete |'Microsoft.Compute/virtualMachineScaleSets'| +//@[63:64) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:3580) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:3580) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:3503) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:3503) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:432) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:432) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:380) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:380) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:2676) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:2676) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:2632) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:2632) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:1918) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:1918) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:557) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:557) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:1086) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1086) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1031) ArrayItemSyntax +//@[22:1031) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Compute/virtualMachineScaleSets/providers/diagnosticSettings' +//@[24:102) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:102) StringSyntax +//@[30:102) StringComplete |'Microsoft.Compute/virtualMachineScaleSets/providers/diagnosticSettings'| +//@[102:103) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:590) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:590) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:419) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:419) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:354) ArrayItemSyntax +//@[28:354) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [] +//@[26:34) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:34) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) RightSquare |]| +//@[34:35) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:627) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:627) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-VMSS' +//@[6:37) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:37) StringSyntax +//@[12:37) StringComplete |'Deploy-Diagnostics-VMSS'| +//@[37:38) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:7723) ArrayItemSyntax +//@[4:7723) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:7671) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:7671) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for VPN Gateway to stream to a Log Analytics workspace when any VPN Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.' +//@[8:269) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:269) StringSyntax +//@[21:269) StringComplete |'Deploys the diagnostic settings for VPN Gateway to stream to a Log Analytics workspace when any VPN Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.'| +//@[269:270) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for VPN Gateway to Log Analytics workspace' +//@[8:92) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:92) StringSyntax +//@[21:92) StringComplete |'Deploy Diagnostic Settings for VPN Gateway to Log Analytics workspace'| +//@[92:93) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1840) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1840) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:376) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:376) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:190) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:190) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:367) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:367) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:85) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:85) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:184) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:184) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:40) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringSyntax +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:5325) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:5325) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:116) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:116) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:25) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringSyntax +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/virtualNetworkGateways' +//@[12:62) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:62) StringSyntax +//@[20:62) StringComplete |'Microsoft.Network/virtualNetworkGateways'| +//@[62:63) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:5176) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:5176) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:5099) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:5099) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:59) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringSyntax +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:33) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringSyntax +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:587) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:587) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:535) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:535) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:154) ArrayItemSyntax +//@[18:154) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:79) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:157) ArrayItemSyntax +//@[18:157) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:82) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:34) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringSyntax +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:179) ArrayItemSyntax +//@[18:179) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:60) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringSyntax +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:262) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:262) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:4117) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:4117) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:4073) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:4073) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:3241) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:3241) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:111) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringSyntax +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:657) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:657) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:99) ObjectPropertySyntax +//@[22:33) IdentifierSyntax +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:99) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:33) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:33) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:2309) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:2309) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:2254) ArrayItemSyntax +//@[22:2254) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Network/virtualNetworkGateways/providers/diagnosticSettings' +//@[24:101) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:101) StringSyntax +//@[30:101) StringComplete |'Microsoft.Network/virtualNetworkGateways/providers/diagnosticSettings'| +//@[101:102) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:56) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringSyntax +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:131) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringSyntax +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:37) ObjectPropertySyntax +//@[24:33) IdentifierSyntax +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:37) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:1814) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:1814) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:71) ObjectPropertySyntax +//@[26:37) IdentifierSyntax +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringSyntax +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:465) ObjectPropertySyntax +//@[26:33) IdentifierSyntax +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:465) ArraySyntax +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:400) ArrayItemSyntax +//@[28:400) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:52) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringSyntax +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:73) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringSyntax +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:167) ObjectPropertySyntax +//@[30:45) IdentifierSyntax +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:167) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:39) ObjectPropertySyntax +//@[32:36) IdentifierSyntax +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) IntegerLiteralSyntax +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:46) ObjectPropertySyntax +//@[32:39) IdentifierSyntax +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) BooleanLiteralSyntax +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:45) ObjectPropertySyntax +//@[30:39) IdentifierSyntax +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullLiteralSyntax +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:1212) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:1212) ArraySyntax +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:193) ArrayItemSyntax +//@[28:193) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'GatewayDiagnosticLog' +//@[30:62) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:62) StringSyntax +//@[40:62) StringComplete |'GatewayDiagnosticLog'| +//@[62:63) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:189) ArrayItemSyntax +//@[28:189) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'IKEDiagnosticLog' +//@[30:58) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:58) StringSyntax +//@[40:58) StringComplete |'IKEDiagnosticLog'| +//@[58:59) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:189) ArrayItemSyntax +//@[28:189) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'P2SDiagnosticLog' +//@[30:58) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:58) StringSyntax +//@[40:58) StringComplete |'P2SDiagnosticLog'| +//@[58:59) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:191) ArrayItemSyntax +//@[28:191) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'RouteDiagnosticLog' +//@[30:60) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:60) StringSyntax +//@[40:60) StringComplete |'RouteDiagnosticLog'| +//@[60:61) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:191) ArrayItemSyntax +//@[28:191) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'RouteDiagnosticLog' +//@[30:60) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:60) StringSyntax +//@[40:60) StringComplete |'RouteDiagnosticLog'| +//@[60:61) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:192) ArrayItemSyntax +//@[28:192) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'TunnelDiagnosticLog' +//@[30:61) ObjectPropertySyntax +//@[30:38) IdentifierSyntax +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:61) StringSyntax +//@[40:61) StringComplete |'TunnelDiagnosticLog'| +//@[61:62) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:70) ObjectPropertySyntax +//@[30:37) IdentifierSyntax +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringSyntax +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:745) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:745) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:106) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:106) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:123) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:123) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:63) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringSyntax +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:117) ObjectPropertySyntax +//@[20:31) IdentifierSyntax +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:117) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:60) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringSyntax +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-VNetGW' +//@[6:39) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:39) StringSyntax +//@[12:39) StringComplete |'Deploy-Diagnostics-VNetGW'| +//@[39:40) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:9795) ArrayItemSyntax +//@[4:9795) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:9743) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:9743) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploy Windows Domain Join Extension with keyvault configuration when the extension does not exist on a given windows Virtual Machine' +//@[8:156) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:156) StringSyntax +//@[21:156) StringComplete |'Deploy Windows Domain Join Extension with keyvault configuration when the extension does not exist on a given windows Virtual Machine'| +//@[156:157) NewLine |\n| + DisplayName: 'Deploy Windows Domain Join Extension with keyvault configuration' +//@[8:87) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:87) StringSyntax +//@[21:87) StringComplete |'Deploy Windows Domain Join Extension with keyvault configuration'| +//@[87:88) NewLine |\n| + Mode: 'Indexed' +//@[8:23) ObjectPropertySyntax +//@[8:12) IdentifierSyntax +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringSyntax +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:1288) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:1288) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + domainUsername: { +//@[10:180) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |domainUsername| +//@[24:25) Colon |:| +//@[26:180) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:113) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:113) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'domainUsername' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'domainUsername'| +//@[43:44) NewLine |\n| + description: null +//@[14:31) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullLiteralSyntax +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + domainPassword: { +//@[10:180) ObjectPropertySyntax +//@[10:24) IdentifierSyntax +//@[10:24) Identifier |domainPassword| +//@[24:25) Colon |:| +//@[26:180) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:113) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:113) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'domainPassword' +//@[14:43) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringSyntax +//@[27:43) StringComplete |'domainPassword'| +//@[43:44) NewLine |\n| + description: null +//@[14:31) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullLiteralSyntax +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + domainFQDN: { +//@[10:172) ObjectPropertySyntax +//@[10:20) IdentifierSyntax +//@[10:20) Identifier |domainFQDN| +//@[20:21) Colon |:| +//@[22:172) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:109) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:109) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'domainFQDN' +//@[14:39) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:39) StringSyntax +//@[27:39) StringComplete |'domainFQDN'| +//@[39:40) NewLine |\n| + description: null +//@[14:31) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullLiteralSyntax +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + domainOUPath: { +//@[10:176) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |domainOUPath| +//@[22:23) Colon |:| +//@[24:176) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:111) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:111) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'domainOUPath' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'domainOUPath'| +//@[41:42) NewLine |\n| + description: null +//@[14:31) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullLiteralSyntax +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + keyVaultResourceId: { +//@[10:188) ObjectPropertySyntax +//@[10:28) IdentifierSyntax +//@[10:28) Identifier |keyVaultResourceId| +//@[28:29) Colon |:| +//@[30:188) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:117) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:117) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'keyVaultResourceId' +//@[14:47) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:47) StringSyntax +//@[27:47) StringComplete |'keyVaultResourceId'| +//@[47:48) NewLine |\n| + description: null +//@[14:31) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullLiteralSyntax +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:355) ObjectPropertySyntax +//@[10:16) IdentifierSyntax +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:355) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:148) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:148) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:35) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringSyntax +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:98) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:98) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Guest Configuration' +//@[10:41) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:41) StringSyntax +//@[20:41) StringComplete |'Guest Configuration'| +//@[41:42) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:8058) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:8058) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:3495) ObjectPropertySyntax +//@[10:12) IdentifierSyntax +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:3495) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:3467) ObjectPropertySyntax +//@[12:17) IdentifierSyntax +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:3467) ArraySyntax +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:121) ArrayItemSyntax +//@[14:121) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:29) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringSyntax +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Compute/virtualMachines' +//@[16:59) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringSyntax +//@[24:59) StringComplete |'Microsoft.Compute/virtualMachines'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:138) ArrayItemSyntax +//@[14:138) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.Compute/imagePublisher' +//@[16:57) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:57) StringSyntax +//@[23:57) StringComplete |'Microsoft.Compute/imagePublisher'| +//@[57:58) NewLine |\n| + equals: 'MicrosoftWindowsServer' +//@[16:48) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:48) StringSyntax +//@[24:48) StringComplete |'MicrosoftWindowsServer'| +//@[48:49) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:125) ArrayItemSyntax +//@[14:125) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.Compute/imageOffer' +//@[16:53) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:53) StringSyntax +//@[23:53) StringComplete |'Microsoft.Compute/imageOffer'| +//@[53:54) NewLine |\n| + equals: 'WindowsServer' +//@[16:39) ObjectPropertySyntax +//@[16:22) IdentifierSyntax +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:39) StringSyntax +//@[24:39) StringComplete |'WindowsServer'| +//@[39:40) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:3045) ArrayItemSyntax +//@[14:3045) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.Compute/imageSKU' +//@[16:51) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:51) StringSyntax +//@[23:51) StringComplete |'Microsoft.Compute/imageSKU'| +//@[51:52) NewLine |\n| + in: [ +//@[16:2961) ObjectPropertySyntax +//@[16:18) IdentifierSyntax +//@[16:18) Identifier |in| +//@[18:19) Colon |:| +//@[20:2961) ArraySyntax +//@[20:21) LeftSquare |[| +//@[21:22) NewLine |\n| + '2008-R2-SP1' +//@[18:31) ArrayItemSyntax +//@[18:31) StringSyntax +//@[18:31) StringComplete |'2008-R2-SP1'| +//@[31:32) NewLine |\n| + '2008-R2-SP1-smalldisk' +//@[18:41) ArrayItemSyntax +//@[18:41) StringSyntax +//@[18:41) StringComplete |'2008-R2-SP1-smalldisk'| +//@[41:42) NewLine |\n| + '2008-R2-SP1-zhcn' +//@[18:36) ArrayItemSyntax +//@[18:36) StringSyntax +//@[18:36) StringComplete |'2008-R2-SP1-zhcn'| +//@[36:37) NewLine |\n| + '2012-Datacenter' +//@[18:35) ArrayItemSyntax +//@[18:35) StringSyntax +//@[18:35) StringComplete |'2012-Datacenter'| +//@[35:36) NewLine |\n| + '2012-datacenter-gensecond' +//@[18:45) ArrayItemSyntax +//@[18:45) StringSyntax +//@[18:45) StringComplete |'2012-datacenter-gensecond'| +//@[45:46) NewLine |\n| + '2012-Datacenter-smalldisk' +//@[18:45) ArrayItemSyntax +//@[18:45) StringSyntax +//@[18:45) StringComplete |'2012-Datacenter-smalldisk'| +//@[45:46) NewLine |\n| + '2012-datacenter-smalldisk-g2' +//@[18:48) ArrayItemSyntax +//@[18:48) StringSyntax +//@[18:48) StringComplete |'2012-datacenter-smalldisk-g2'| +//@[48:49) NewLine |\n| + '2012-Datacenter-zhcn' +//@[18:40) ArrayItemSyntax +//@[18:40) StringSyntax +//@[18:40) StringComplete |'2012-Datacenter-zhcn'| +//@[40:41) NewLine |\n| + '2012-datacenter-zhcn-g2' +//@[18:43) ArrayItemSyntax +//@[18:43) StringSyntax +//@[18:43) StringComplete |'2012-datacenter-zhcn-g2'| +//@[43:44) NewLine |\n| + '2012-R2-Datacenter' +//@[18:38) ArrayItemSyntax +//@[18:38) StringSyntax +//@[18:38) StringComplete |'2012-R2-Datacenter'| +//@[38:39) NewLine |\n| + '2012-r2-datacenter-gensecond' +//@[18:48) ArrayItemSyntax +//@[18:48) StringSyntax +//@[18:48) StringComplete |'2012-r2-datacenter-gensecond'| +//@[48:49) NewLine |\n| + '2012-R2-Datacenter-smalldisk' +//@[18:48) ArrayItemSyntax +//@[18:48) StringSyntax +//@[18:48) StringComplete |'2012-R2-Datacenter-smalldisk'| +//@[48:49) NewLine |\n| + '2012-r2-datacenter-smalldisk-g2' +//@[18:51) ArrayItemSyntax +//@[18:51) StringSyntax +//@[18:51) StringComplete |'2012-r2-datacenter-smalldisk-g2'| +//@[51:52) NewLine |\n| + '2012-R2-Datacenter-zhcn' +//@[18:43) ArrayItemSyntax +//@[18:43) StringSyntax +//@[18:43) StringComplete |'2012-R2-Datacenter-zhcn'| +//@[43:44) NewLine |\n| + '2012-r2-datacenter-zhcn-g2' +//@[18:46) ArrayItemSyntax +//@[18:46) StringSyntax +//@[18:46) StringComplete |'2012-r2-datacenter-zhcn-g2'| +//@[46:47) NewLine |\n| + '2016-Datacenter' +//@[18:35) ArrayItemSyntax +//@[18:35) StringSyntax +//@[18:35) StringComplete |'2016-Datacenter'| +//@[35:36) NewLine |\n| + '2016-datacenter-gensecond' +//@[18:45) ArrayItemSyntax +//@[18:45) StringSyntax +//@[18:45) StringComplete |'2016-datacenter-gensecond'| +//@[45:46) NewLine |\n| + '2016-datacenter-gs' +//@[18:38) ArrayItemSyntax +//@[18:38) StringSyntax +//@[18:38) StringComplete |'2016-datacenter-gs'| +//@[38:39) NewLine |\n| + '2016-Datacenter-Server-Core' +//@[18:47) ArrayItemSyntax +//@[18:47) StringSyntax +//@[18:47) StringComplete |'2016-Datacenter-Server-Core'| +//@[47:48) NewLine |\n| + '2016-datacenter-server-core-g2' +//@[18:50) ArrayItemSyntax +//@[18:50) StringSyntax +//@[18:50) StringComplete |'2016-datacenter-server-core-g2'| +//@[50:51) NewLine |\n| + '2016-Datacenter-Server-Core-smalldisk' +//@[18:57) ArrayItemSyntax +//@[18:57) StringSyntax +//@[18:57) StringComplete |'2016-Datacenter-Server-Core-smalldisk'| +//@[57:58) NewLine |\n| + '2016-datacenter-server-core-smalldisk-g2' +//@[18:60) ArrayItemSyntax +//@[18:60) StringSyntax +//@[18:60) StringComplete |'2016-datacenter-server-core-smalldisk-g2'| +//@[60:61) NewLine |\n| + '2016-Datacenter-smalldisk' +//@[18:45) ArrayItemSyntax +//@[18:45) StringSyntax +//@[18:45) StringComplete |'2016-Datacenter-smalldisk'| +//@[45:46) NewLine |\n| + '2016-datacenter-smalldisk-g2' +//@[18:48) ArrayItemSyntax +//@[18:48) StringSyntax +//@[18:48) StringComplete |'2016-datacenter-smalldisk-g2'| +//@[48:49) NewLine |\n| + '2016-Datacenter-with-Containers' +//@[18:51) ArrayItemSyntax +//@[18:51) StringSyntax +//@[18:51) StringComplete |'2016-Datacenter-with-Containers'| +//@[51:52) NewLine |\n| + '2016-datacenter-with-containers-g2' +//@[18:54) ArrayItemSyntax +//@[18:54) StringSyntax +//@[18:54) StringComplete |'2016-datacenter-with-containers-g2'| +//@[54:55) NewLine |\n| + '2016-Datacenter-with-RDSH' +//@[18:45) ArrayItemSyntax +//@[18:45) StringSyntax +//@[18:45) StringComplete |'2016-Datacenter-with-RDSH'| +//@[45:46) NewLine |\n| + '2016-Datacenter-zhcn' +//@[18:40) ArrayItemSyntax +//@[18:40) StringSyntax +//@[18:40) StringComplete |'2016-Datacenter-zhcn'| +//@[40:41) NewLine |\n| + '2016-datacenter-zhcn-g2' +//@[18:43) ArrayItemSyntax +//@[18:43) StringSyntax +//@[18:43) StringComplete |'2016-datacenter-zhcn-g2'| +//@[43:44) NewLine |\n| + '2019-Datacenter' +//@[18:35) ArrayItemSyntax +//@[18:35) StringSyntax +//@[18:35) StringComplete |'2019-Datacenter'| +//@[35:36) NewLine |\n| + '2019-Datacenter-Core' +//@[18:40) ArrayItemSyntax +//@[18:40) StringSyntax +//@[18:40) StringComplete |'2019-Datacenter-Core'| +//@[40:41) NewLine |\n| + '2019-datacenter-core-g2' +//@[18:43) ArrayItemSyntax +//@[18:43) StringSyntax +//@[18:43) StringComplete |'2019-datacenter-core-g2'| +//@[43:44) NewLine |\n| + '2019-Datacenter-Core-smalldisk' +//@[18:50) ArrayItemSyntax +//@[18:50) StringSyntax +//@[18:50) StringComplete |'2019-Datacenter-Core-smalldisk'| +//@[50:51) NewLine |\n| + '2019-datacenter-core-smalldisk-g2' +//@[18:53) ArrayItemSyntax +//@[18:53) StringSyntax +//@[18:53) StringComplete |'2019-datacenter-core-smalldisk-g2'| +//@[53:54) NewLine |\n| + '2019-Datacenter-Core-with-Containers' +//@[18:56) ArrayItemSyntax +//@[18:56) StringSyntax +//@[18:56) StringComplete |'2019-Datacenter-Core-with-Containers'| +//@[56:57) NewLine |\n| + '2019-datacenter-core-with-containers-g2' +//@[18:59) ArrayItemSyntax +//@[18:59) StringSyntax +//@[18:59) StringComplete |'2019-datacenter-core-with-containers-g2'| +//@[59:60) NewLine |\n| + '2019-Datacenter-Core-with-Containers-smalldisk' +//@[18:66) ArrayItemSyntax +//@[18:66) StringSyntax +//@[18:66) StringComplete |'2019-Datacenter-Core-with-Containers-smalldisk'| +//@[66:67) NewLine |\n| + '2019-datacenter-core-with-containers-smalldisk-g2' +//@[18:69) ArrayItemSyntax +//@[18:69) StringSyntax +//@[18:69) StringComplete |'2019-datacenter-core-with-containers-smalldisk-g2'| +//@[69:70) NewLine |\n| + '2019-datacenter-gensecond' +//@[18:45) ArrayItemSyntax +//@[18:45) StringSyntax +//@[18:45) StringComplete |'2019-datacenter-gensecond'| +//@[45:46) NewLine |\n| + '2019-datacenter-gs' +//@[18:38) ArrayItemSyntax +//@[18:38) StringSyntax +//@[18:38) StringComplete |'2019-datacenter-gs'| +//@[38:39) NewLine |\n| + '2019-Datacenter-smalldisk' +//@[18:45) ArrayItemSyntax +//@[18:45) StringSyntax +//@[18:45) StringComplete |'2019-Datacenter-smalldisk'| +//@[45:46) NewLine |\n| + '2019-datacenter-smalldisk-g2' +//@[18:48) ArrayItemSyntax +//@[18:48) StringSyntax +//@[18:48) StringComplete |'2019-datacenter-smalldisk-g2'| +//@[48:49) NewLine |\n| + '2019-Datacenter-with-Containers' +//@[18:51) ArrayItemSyntax +//@[18:51) StringSyntax +//@[18:51) StringComplete |'2019-Datacenter-with-Containers'| +//@[51:52) NewLine |\n| + '2019-datacenter-with-containers-g2' +//@[18:54) ArrayItemSyntax +//@[18:54) StringSyntax +//@[18:54) StringComplete |'2019-datacenter-with-containers-g2'| +//@[54:55) NewLine |\n| + '2019-Datacenter-with-Containers-smalldisk' +//@[18:61) ArrayItemSyntax +//@[18:61) StringSyntax +//@[18:61) StringComplete |'2019-Datacenter-with-Containers-smalldisk'| +//@[61:62) NewLine |\n| + '2019-datacenter-with-containers-smalldisk-g2' +//@[18:64) ArrayItemSyntax +//@[18:64) StringSyntax +//@[18:64) StringComplete |'2019-datacenter-with-containers-smalldisk-g2'| +//@[64:65) NewLine |\n| + '2019-Datacenter-zhcn' +//@[18:40) ArrayItemSyntax +//@[18:40) StringSyntax +//@[18:40) StringComplete |'2019-Datacenter-zhcn'| +//@[40:41) NewLine |\n| + '2019-datacenter-zhcn-g2' +//@[18:43) ArrayItemSyntax +//@[18:43) StringSyntax +//@[18:43) StringComplete |'2019-datacenter-zhcn-g2'| +//@[43:44) NewLine |\n| + 'Datacenter-Core-1803-with-Containers-smalldisk' +//@[18:66) ArrayItemSyntax +//@[18:66) StringSyntax +//@[18:66) StringComplete |'Datacenter-Core-1803-with-Containers-smalldisk'| +//@[66:67) NewLine |\n| + 'datacenter-core-1803-with-containers-smalldisk-g2' +//@[18:69) ArrayItemSyntax +//@[18:69) StringSyntax +//@[18:69) StringComplete |'datacenter-core-1803-with-containers-smalldisk-g2'| +//@[69:70) NewLine |\n| + 'Datacenter-Core-1809-with-Containers-smalldisk' +//@[18:66) ArrayItemSyntax +//@[18:66) StringSyntax +//@[18:66) StringComplete |'Datacenter-Core-1809-with-Containers-smalldisk'| +//@[66:67) NewLine |\n| + 'datacenter-core-1809-with-containers-smalldisk-g2' +//@[18:69) ArrayItemSyntax +//@[18:69) StringSyntax +//@[18:69) StringComplete |'datacenter-core-1809-with-containers-smalldisk-g2'| +//@[69:70) NewLine |\n| + 'Datacenter-Core-1903-with-Containers-smalldisk' +//@[18:66) ArrayItemSyntax +//@[18:66) StringSyntax +//@[18:66) StringComplete |'Datacenter-Core-1903-with-Containers-smalldisk'| +//@[66:67) NewLine |\n| + 'datacenter-core-1903-with-containers-smalldisk-g2' +//@[18:69) ArrayItemSyntax +//@[18:69) StringSyntax +//@[18:69) StringComplete |'datacenter-core-1903-with-containers-smalldisk-g2'| +//@[69:70) NewLine |\n| + 'datacenter-core-1909-with-containers-smalldisk' +//@[18:66) ArrayItemSyntax +//@[18:66) StringSyntax +//@[18:66) StringComplete |'datacenter-core-1909-with-containers-smalldisk'| +//@[66:67) NewLine |\n| + 'datacenter-core-1909-with-containers-smalldisk-g1' +//@[18:69) ArrayItemSyntax +//@[18:69) StringSyntax +//@[18:69) StringComplete |'datacenter-core-1909-with-containers-smalldisk-g1'| +//@[69:70) NewLine |\n| + 'datacenter-core-1909-with-containers-smalldisk-g2' +//@[18:69) ArrayItemSyntax +//@[18:69) StringSyntax +//@[18:69) StringComplete |'datacenter-core-1909-with-containers-smalldisk-g2'| +//@[69:70) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:4530) ObjectPropertySyntax +//@[10:14) IdentifierSyntax +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:4530) ObjectSyntax +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:46) ObjectPropertySyntax +//@[12:18) IdentifierSyntax +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringSyntax +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:4453) ObjectPropertySyntax +//@[12:19) IdentifierSyntax +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:4453) ObjectSyntax +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Compute/virtualMachines/extensions' +//@[14:66) ObjectPropertySyntax +//@[14:18) IdentifierSyntax +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:66) StringSyntax +//@[20:66) StringComplete |'Microsoft.Compute/virtualMachines/extensions'| +//@[66:67) NewLine |\n| + roleDefinitionIds: [ +//@[14:156) ObjectPropertySyntax +//@[14:31) IdentifierSyntax +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:156) ArraySyntax +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c' +//@[16:105) ArrayItemSyntax +//@[16:105) StringSyntax +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + existenceCondition: { +//@[14:437) ObjectPropertySyntax +//@[14:32) IdentifierSyntax +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:437) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:385) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:385) ArraySyntax +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:170) ArrayItemSyntax +//@[18:170) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Compute/virtualMachines/extensions/type' +//@[20:78) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringSyntax +//@[27:78) StringComplete |'Microsoft.Compute/virtualMachines/extensions/type'| +//@[78:79) NewLine |\n| + equals: 'JsonADDomainExtension' +//@[20:51) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:51) StringSyntax +//@[28:51) StringComplete |'JsonADDomainExtension'| +//@[51:52) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:171) ArrayItemSyntax +//@[18:171) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Compute/virtualMachines/extensions/publisher' +//@[20:83) ObjectPropertySyntax +//@[20:25) IdentifierSyntax +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:83) StringSyntax +//@[27:83) StringComplete |'Microsoft.Compute/virtualMachines/extensions/publisher'| +//@[83:84) NewLine |\n| + equals: 'Microsoft.Compute' +//@[20:47) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:47) StringSyntax +//@[28:47) StringComplete |'Microsoft.Compute'| +//@[47:48) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + deployment: { +//@[14:3754) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:3754) ObjectSyntax +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:3710) ObjectPropertySyntax +//@[16:26) IdentifierSyntax +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:3710) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:37) ObjectPropertySyntax +//@[18:22) IdentifierSyntax +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringSyntax +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:1269) ObjectPropertySyntax +//@[18:28) IdentifierSyntax +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:1269) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + vmName: { +//@[20:100) ObjectPropertySyntax +//@[20:26) IdentifierSyntax +//@[20:26) Identifier |vmName| +//@[26:27) Colon |:| +//@[28:100) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[field(\'name\')]' +//@[22:48) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringSyntax +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:106) ObjectPropertySyntax +//@[20:28) IdentifierSyntax +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:106) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:52) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringSyntax +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + domainUsername: { +//@[20:320) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |domainUsername| +//@[34:35) Colon |:| +//@[36:320) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + reference: { +//@[22:260) ObjectPropertySyntax +//@[22:31) IdentifierSyntax +//@[22:31) Identifier |reference| +//@[31:32) Colon |:| +//@[33:260) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + keyVault: { +//@[24:130) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |keyVault| +//@[32:33) Colon |:| +//@[34:130) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + id: '[parameters(\'keyVaultResourceId\')]' +//@[26:68) ObjectPropertySyntax +//@[26:28) IdentifierSyntax +//@[26:28) Identifier |id| +//@[28:29) Colon |:| +//@[30:68) StringSyntax +//@[30:68) StringComplete |'[parameters(\'keyVaultResourceId\')]'| +//@[68:69) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + secretName: '[parameters(\'domainUsername\')]' +//@[24:70) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |secretName| +//@[34:35) Colon |:| +//@[36:70) StringSyntax +//@[36:70) StringComplete |'[parameters(\'domainUsername\')]'| +//@[70:71) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + domainPassword: { +//@[20:320) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |domainPassword| +//@[34:35) Colon |:| +//@[36:320) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + reference: { +//@[22:260) ObjectPropertySyntax +//@[22:31) IdentifierSyntax +//@[22:31) Identifier |reference| +//@[31:32) Colon |:| +//@[33:260) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + keyVault: { +//@[24:130) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |keyVault| +//@[32:33) Colon |:| +//@[34:130) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + id: '[parameters(\'keyVaultResourceId\')]' +//@[26:68) ObjectPropertySyntax +//@[26:28) IdentifierSyntax +//@[26:28) Identifier |id| +//@[28:29) Colon |:| +//@[30:68) StringSyntax +//@[30:68) StringComplete |'[parameters(\'keyVaultResourceId\')]'| +//@[68:69) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + secretName: '[parameters(\'domainPassword\')]' +//@[24:70) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |secretName| +//@[34:35) Colon |:| +//@[36:70) StringSyntax +//@[36:70) StringComplete |'[parameters(\'domainPassword\')]'| +//@[70:71) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + domainOUPath: { +//@[20:119) ObjectPropertySyntax +//@[20:32) IdentifierSyntax +//@[20:32) Identifier |domainOUPath| +//@[32:33) Colon |:| +//@[34:119) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'domainOUPath\')]' +//@[22:61) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringSyntax +//@[29:61) StringComplete |'[parameters(\'domainOUPath\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + domainFQDN: { +//@[20:115) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |domainFQDN| +//@[30:31) Colon |:| +//@[32:115) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + value: '[parameters(\'domainFQDN\')]' +//@[22:59) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:59) StringSyntax +//@[29:59) StringComplete |'[parameters(\'domainFQDN\')]'| +//@[59:60) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + keyVaultResourceId: { +//@[20:131) ObjectPropertySyntax +//@[20:38) IdentifierSyntax +//@[20:38) Identifier |keyVaultResourceId| +//@[38:39) Colon |:| +//@[40:131) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + value: '[parameters(\'keyVaultResourceId\')]' +//@[22:67) ObjectPropertySyntax +//@[22:27) IdentifierSyntax +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:67) StringSyntax +//@[29:67) StringComplete |'[parameters(\'keyVaultResourceId\')]'| +//@[67:68) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:2354) ObjectPropertySyntax +//@[18:26) IdentifierSyntax +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:2354) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:112) ObjectPropertySyntax +//@[20:29) StringSyntax +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:112) StringSyntax +//@[31:112) StringComplete |'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[112:113) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:45) ObjectPropertySyntax +//@[20:34) IdentifierSyntax +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringSyntax +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:766) ObjectPropertySyntax +//@[20:30) IdentifierSyntax +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:766) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + vmName: { +//@[22:94) ObjectPropertySyntax +//@[22:28) IdentifierSyntax +//@[22:28) Identifier |vmName| +//@[28:29) Colon |:| +//@[30:94) ObjectSyntax +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:96) ObjectPropertySyntax +//@[22:30) IdentifierSyntax +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:96) ObjectSyntax +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + domainUsername: { +//@[22:102) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |domainUsername| +//@[36:37) Colon |:| +//@[38:102) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + domainPassword: { +//@[22:108) ObjectPropertySyntax +//@[22:36) IdentifierSyntax +//@[22:36) Identifier |domainPassword| +//@[36:37) Colon |:| +//@[38:108) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'securestring' +//@[24:44) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:44) StringSyntax +//@[30:44) StringComplete |'securestring'| +//@[44:45) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + domainFQDN: { +//@[22:98) ObjectPropertySyntax +//@[22:32) IdentifierSyntax +//@[22:32) Identifier |domainFQDN| +//@[32:33) Colon |:| +//@[34:98) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + domainOUPath: { +//@[22:100) ObjectPropertySyntax +//@[22:34) IdentifierSyntax +//@[22:34) Identifier |domainOUPath| +//@[34:35) Colon |:| +//@[36:100) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + keyVaultResourceId: { +//@[22:106) ObjectPropertySyntax +//@[22:40) IdentifierSyntax +//@[22:40) Identifier |keyVaultResourceId| +//@[40:41) Colon |:| +//@[42:106) ObjectSyntax +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + type: 'string' +//@[24:38) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringSyntax +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: { +//@[20:154) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:154) ObjectSyntax +//@[31:32) LeftBrace |{| +//@[32:33) NewLine |\n| + domainJoinOptions: 3 +//@[22:42) ObjectPropertySyntax +//@[22:39) IdentifierSyntax +//@[22:39) Identifier |domainJoinOptions| +//@[39:40) Colon |:| +//@[41:42) IntegerLiteralSyntax +//@[41:42) Integer |3| +//@[42:43) NewLine |\n| + vmName: '[parameters(\'vmName\')]' +//@[22:56) ObjectPropertySyntax +//@[22:28) IdentifierSyntax +//@[22:28) Identifier |vmName| +//@[28:29) Colon |:| +//@[30:56) StringSyntax +//@[30:56) StringComplete |'[parameters(\'vmName\')]'| +//@[56:57) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:1191) ObjectPropertySyntax +//@[20:29) IdentifierSyntax +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:1191) ArraySyntax +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:1136) ArrayItemSyntax +//@[22:1136) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + apiVersion: '2015-06-15' +//@[24:48) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringSyntax +//@[36:48) StringComplete |'2015-06-15'| +//@[48:49) NewLine |\n| + type: 'Microsoft.Compute/virtualMachines/extensions' +//@[24:76) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:76) StringSyntax +//@[30:76) StringComplete |'Microsoft.Compute/virtualMachines/extensions'| +//@[76:77) NewLine |\n| + name: '[concat(variables(\'vmName\'),\'/joindomain\')]' +//@[24:79) ObjectPropertySyntax +//@[24:28) IdentifierSyntax +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:79) StringSyntax +//@[30:79) StringComplete |'[concat(variables(\'vmName\'),\'/joindomain\')]'| +//@[79:80) NewLine |\n| + location: '[resourceGroup().location]' +//@[24:62) ObjectPropertySyntax +//@[24:32) IdentifierSyntax +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringSyntax +//@[34:62) StringComplete |'[resourceGroup().location]'| +//@[62:63) NewLine |\n| + properties: { +//@[24:819) ObjectPropertySyntax +//@[24:34) IdentifierSyntax +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:819) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + publisher: 'Microsoft.Compute' +//@[26:56) ObjectPropertySyntax +//@[26:35) IdentifierSyntax +//@[26:35) Identifier |publisher| +//@[35:36) Colon |:| +//@[37:56) StringSyntax +//@[37:56) StringComplete |'Microsoft.Compute'| +//@[56:57) NewLine |\n| + type: 'JsonADDomainExtension' +//@[26:55) ObjectPropertySyntax +//@[26:30) IdentifierSyntax +//@[26:30) Identifier |type| +//@[30:31) Colon |:| +//@[32:55) StringSyntax +//@[32:55) StringComplete |'JsonADDomainExtension'| +//@[55:56) NewLine |\n| + typeHandlerVersion: '1.3' +//@[26:51) ObjectPropertySyntax +//@[26:44) IdentifierSyntax +//@[26:44) Identifier |typeHandlerVersion| +//@[44:45) Colon |:| +//@[46:51) StringSyntax +//@[46:51) StringComplete |'1.3'| +//@[51:52) NewLine |\n| + autoUpgradeMinorVersion: true +//@[26:55) ObjectPropertySyntax +//@[26:49) IdentifierSyntax +//@[26:49) Identifier |autoUpgradeMinorVersion| +//@[49:50) Colon |:| +//@[51:55) BooleanLiteralSyntax +//@[51:55) TrueKeyword |true| +//@[55:56) NewLine |\n| + settings: { +//@[26:386) ObjectPropertySyntax +//@[26:34) IdentifierSyntax +//@[26:34) Identifier |settings| +//@[34:35) Colon |:| +//@[36:386) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + Name: '[parameters(\'domainFQDN\')]' +//@[28:64) ObjectPropertySyntax +//@[28:32) IdentifierSyntax +//@[28:32) Identifier |Name| +//@[32:33) Colon |:| +//@[34:64) StringSyntax +//@[34:64) StringComplete |'[parameters(\'domainFQDN\')]'| +//@[64:65) NewLine |\n| + User: '[parameters(\'domainUserName\')]' +//@[28:68) ObjectPropertySyntax +//@[28:32) IdentifierSyntax +//@[28:32) Identifier |User| +//@[32:33) Colon |:| +//@[34:68) StringSyntax +//@[34:68) StringComplete |'[parameters(\'domainUserName\')]'| +//@[68:69) NewLine |\n| + Restart: 'true' +//@[28:43) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |Restart| +//@[35:36) Colon |:| +//@[37:43) StringSyntax +//@[37:43) StringComplete |'true'| +//@[43:44) NewLine |\n| + Options: '[variables(\'domainJoinOptions\')]' +//@[28:73) ObjectPropertySyntax +//@[28:35) IdentifierSyntax +//@[28:35) Identifier |Options| +//@[35:36) Colon |:| +//@[37:73) StringSyntax +//@[37:73) StringComplete |'[variables(\'domainJoinOptions\')]'| +//@[73:74) NewLine |\n| + OUPath: '[parameters(\'domainOUPath\')]' +//@[28:68) ObjectPropertySyntax +//@[28:34) IdentifierSyntax +//@[28:34) Identifier |OUPath| +//@[34:35) Colon |:| +//@[36:68) StringSyntax +//@[36:68) StringComplete |'[parameters(\'domainOUPath\')]'| +//@[68:69) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + protectedSettings: { +//@[26:147) ObjectPropertySyntax +//@[26:43) IdentifierSyntax +//@[26:43) Identifier |protectedSettings| +//@[43:44) Colon |:| +//@[45:147) ObjectSyntax +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + Password: '[parameters(\'domainPassword\')]' +//@[28:72) ObjectPropertySyntax +//@[28:36) IdentifierSyntax +//@[28:36) Identifier |Password| +//@[36:37) Colon |:| +//@[38:72) StringSyntax +//@[38:72) StringComplete |'[parameters(\'domainPassword\')]'| +//@[72:73) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:31) ObjectPropertySyntax +//@[20:27) IdentifierSyntax +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:31) ObjectSyntax +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Windows-DomainJoin' +//@[6:39) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:39) StringSyntax +//@[12:39) StringComplete |'Deploy-Windows-DomainJoin'| +//@[39:40) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + ] +//@[2:3) RightSquare |]| +//@[3:4) NewLine |\n| +} +//@[0:1) RightBrace |}| +//@[1:2) NewLine |\n| +var initiatives = { +//@[0:82201) VariableDeclarationSyntax +//@[0:3) Identifier |var| +//@[4:15) IdentifierSyntax +//@[4:15) Identifier |initiatives| +//@[16:17) Assignment |=| +//@[18:82201) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + policySetDefinitions: [ +//@[2:82179) ObjectPropertySyntax +//@[2:22) IdentifierSyntax +//@[2:22) Identifier |policySetDefinitions| +//@[22:23) Colon |:| +//@[24:82179) ArraySyntax +//@[24:25) LeftSquare |[| +//@[25:26) NewLine |\n| + { +//@[4:70086) ArrayItemSyntax +//@[4:70086) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:70018) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:70018) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy set deploys the configurations of application Azure resources to forward diagnostic logs and metrics to an Azure Log Analytics workspace. See the list of policies of the services that are included ' +//@[8:232) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:232) StringSyntax +//@[21:232) StringComplete |'This policy set deploys the configurations of application Azure resources to forward diagnostic logs and metrics to an Azure Log Analytics workspace. See the list of policies of the services that are included '| +//@[232:233) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings to Azure Services' +//@[8:67) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:67) StringSyntax +//@[21:67) StringComplete |'Deploy Diagnostic Settings to Azure Services'| +//@[67:68) NewLine |\n| + Parameters: { +//@[8:36776) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:36776) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:457) ObjectPropertySyntax +//@[10:22) IdentifierSyntax +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:457) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + metadata: { +//@[12:392) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:392) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:260) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringSyntax +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:52) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringSyntax +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:40) ObjectPropertySyntax +//@[14:24) IdentifierSyntax +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringSyntax +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:249) ObjectPropertySyntax +//@[10:21) IdentifierSyntax +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:249) ObjectSyntax +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:39) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringSyntax +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:145) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:145) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:41) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringSyntax +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:65) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringSyntax +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + ACILogAnalyticsEffect: { +//@[10:628) ObjectPropertySyntax +//@[10:31) IdentifierSyntax +//@[10:31) Identifier |ACILogAnalyticsEffect| +//@[31:32) Colon |:| +//@[33:628) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:406) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:406) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Container Instances to Log Analytics workspace' +//@[14:106) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:106) StringSyntax +//@[27:106) StringComplete |'Deploy Diagnostic Settings for Container Instances to Log Analytics workspace'| +//@[106:107) NewLine |\n| + description: 'Deploys the diagnostic settings for Container Instances to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.' +//@[14:261) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:261) StringSyntax +//@[27:261) StringComplete |'Deploys the diagnostic settings for Container Instances to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.'| +//@[261:262) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + ACRLogAnalyticsEffect: { +//@[10:628) ObjectPropertySyntax +//@[10:31) IdentifierSyntax +//@[10:31) Identifier |ACRLogAnalyticsEffect| +//@[31:32) Colon |:| +//@[33:628) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:406) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:406) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Container Registry to Log Analytics workspace' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Deploy Diagnostic Settings for Container Registry to Log Analytics workspace'| +//@[105:106) NewLine |\n| + description: 'Deploys the diagnostic settings for Container Registry to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.' +//@[14:262) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:262) StringSyntax +//@[27:262) StringComplete |'Deploys the diagnostic settings for Container Registry to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.'| +//@[262:263) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + AKSLogAnalyticsEffect: { +//@[10:655) ObjectPropertySyntax +//@[10:31) IdentifierSyntax +//@[10:31) Identifier |AKSLogAnalyticsEffect| +//@[31:32) Colon |:| +//@[33:655) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:433) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:433) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Kubernetes Service to Log Analytics workspace' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Deploy Diagnostic Settings for Kubernetes Service to Log Analytics workspace'| +//@[105:106) NewLine |\n| + description: 'Deploys the diagnostic settings for Kubernetes Service to stream to a Log Analytics workspace when any Kubernetes Service which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.' +//@[14:289) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:289) StringSyntax +//@[27:289) StringComplete |'Deploys the diagnostic settings for Kubernetes Service to stream to a Log Analytics workspace when any Kubernetes Service which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.'| +//@[289:290) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + AnalysisServiceLogAnalyticsEffect: { +//@[10:663) ObjectPropertySyntax +//@[10:43) IdentifierSyntax +//@[10:43) Identifier |AnalysisServiceLogAnalyticsEffect| +//@[43:44) Colon |:| +//@[45:663) ObjectSyntax +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:429) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:429) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Analysis Services to Log Analytics workspace' +//@[14:104) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:104) StringSyntax +//@[27:104) StringComplete |'Deploy Diagnostic Settings for Analysis Services to Log Analytics workspace'| +//@[104:105) NewLine |\n| + description: 'Deploys the diagnostic settings for Analysis Services to stream to a Log Analytics workspace when any Analysis Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:286) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:286) StringSyntax +//@[27:286) StringComplete |'Deploys the diagnostic settings for Analysis Services to stream to a Log Analytics workspace when any Analysis Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[286:287) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + APIMgmtLogAnalyticsEffect: { +//@[10:646) ObjectPropertySyntax +//@[10:35) IdentifierSyntax +//@[10:35) Identifier |APIMgmtLogAnalyticsEffect| +//@[35:36) Colon |:| +//@[37:646) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:420) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:420) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for API Management to Log Analytics workspace' +//@[14:101) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:101) StringSyntax +//@[27:101) StringComplete |'Deploy Diagnostic Settings for API Management to Log Analytics workspace'| +//@[101:102) NewLine |\n| + description: 'Deploys the diagnostic settings for API Management to stream to a Log Analytics workspace when any API Management which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:280) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:280) StringSyntax +//@[27:280) StringComplete |'Deploys the diagnostic settings for API Management to stream to a Log Analytics workspace when any API Management which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[280:281) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + ApplicationGatewayLogAnalyticsEffect: { +//@[10:672) ObjectPropertySyntax +//@[10:46) IdentifierSyntax +//@[10:46) Identifier |ApplicationGatewayLogAnalyticsEffect| +//@[46:47) Colon |:| +//@[48:672) ObjectSyntax +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:435) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:435) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Application Gateway to Log Analytics workspace' +//@[14:106) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:106) StringSyntax +//@[27:106) StringComplete |'Deploy Diagnostic Settings for Application Gateway to Log Analytics workspace'| +//@[106:107) NewLine |\n| + description: 'Deploys the diagnostic settings for Application Gateway to stream to a Log Analytics workspace when any Application Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:290) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:290) StringSyntax +//@[27:290) StringComplete |'Deploys the diagnostic settings for Application Gateway to stream to a Log Analytics workspace when any Application Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[290:291) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + AutomationLogAnalyticsEffect: { +//@[10:637) ObjectPropertySyntax +//@[10:38) IdentifierSyntax +//@[10:38) Identifier |AutomationLogAnalyticsEffect| +//@[38:39) Colon |:| +//@[40:637) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:408) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:408) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Automation to Log Analytics workspace' +//@[14:97) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:97) StringSyntax +//@[27:97) StringComplete |'Deploy Diagnostic Settings for Automation to Log Analytics workspace'| +//@[97:98) NewLine |\n| + description: 'Deploys the diagnostic settings for Automation to stream to a Log Analytics workspace when any Automation which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:272) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:272) StringSyntax +//@[27:272) StringComplete |'Deploys the diagnostic settings for Automation to stream to a Log Analytics workspace when any Automation which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[272:273) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + BatchLogAnalyticsEffect: { +//@[10:617) ObjectPropertySyntax +//@[10:33) IdentifierSyntax +//@[10:33) Identifier |BatchLogAnalyticsEffect| +//@[33:34) Colon |:| +//@[35:617) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:393) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:393) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Batch to Log Analytics workspace' +//@[14:92) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:92) StringSyntax +//@[27:92) StringComplete |'Deploy Diagnostic Settings for Batch to Log Analytics workspace'| +//@[92:93) NewLine |\n| + description: 'Deploys the diagnostic settings for Batch to stream to a Log Analytics workspace when any Batch which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:262) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:262) StringSyntax +//@[27:262) StringComplete |'Deploys the diagnostic settings for Batch to stream to a Log Analytics workspace when any Batch which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[262:263) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + CDNEndpointsLogAnalyticsEffect: { +//@[10:645) ObjectPropertySyntax +//@[10:40) IdentifierSyntax +//@[10:40) Identifier |CDNEndpointsLogAnalyticsEffect| +//@[40:41) Colon |:| +//@[42:645) ObjectSyntax +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:414) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:414) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for CDN Endpoint to Log Analytics workspace' +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:99) StringSyntax +//@[27:99) StringComplete |'Deploy Diagnostic Settings for CDN Endpoint to Log Analytics workspace'| +//@[99:100) NewLine |\n| + description: 'Deploys the diagnostic settings for CDN Endpoint to stream to a Log Analytics workspace when any CDN Endpoint which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:276) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:276) StringSyntax +//@[27:276) StringComplete |'Deploys the diagnostic settings for CDN Endpoint to stream to a Log Analytics workspace when any CDN Endpoint which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[276:277) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + CognitiveServicesLogAnalyticsEffect: { +//@[10:668) ObjectPropertySyntax +//@[10:45) IdentifierSyntax +//@[10:45) Identifier |CognitiveServicesLogAnalyticsEffect| +//@[45:46) Colon |:| +//@[47:668) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:432) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:432) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Cognitive Services to Log Analytics workspace' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Deploy Diagnostic Settings for Cognitive Services to Log Analytics workspace'| +//@[105:106) NewLine |\n| + description: 'Deploys the diagnostic settings for Cognitive Services to stream to a Log Analytics workspace when any Cognitive Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:288) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:288) StringSyntax +//@[27:288) StringComplete |'Deploys the diagnostic settings for Cognitive Services to stream to a Log Analytics workspace when any Cognitive Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[288:289) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + CosmosLogAnalyticsEffect: { +//@[10:630) ObjectPropertySyntax +//@[10:34) IdentifierSyntax +//@[10:34) Identifier |CosmosLogAnalyticsEffect| +//@[34:35) Colon |:| +//@[36:630) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:405) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:405) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Cosmos DB to Log Analytics workspace' +//@[14:96) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:96) StringSyntax +//@[27:96) StringComplete |'Deploy Diagnostic Settings for Cosmos DB to Log Analytics workspace'| +//@[96:97) NewLine |\n| + description: 'Deploys the diagnostic settings for Cosmos DB to stream to a Log Analytics workspace when any Cosmos DB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:270) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:270) StringSyntax +//@[27:270) StringComplete |'Deploys the diagnostic settings for Cosmos DB to stream to a Log Analytics workspace when any Cosmos DB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[270:271) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + DatabricksLogAnalyticsEffect: { +//@[10:637) ObjectPropertySyntax +//@[10:38) IdentifierSyntax +//@[10:38) Identifier |DatabricksLogAnalyticsEffect| +//@[38:39) Colon |:| +//@[40:637) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:408) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:408) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Databricks to Log Analytics workspace' +//@[14:97) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:97) StringSyntax +//@[27:97) StringComplete |'Deploy Diagnostic Settings for Databricks to Log Analytics workspace'| +//@[97:98) NewLine |\n| + description: 'Deploys the diagnostic settings for Databricks to stream to a Log Analytics workspace when any Databricks which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:272) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:272) StringSyntax +//@[27:272) StringComplete |'Deploys the diagnostic settings for Databricks to stream to a Log Analytics workspace when any Databricks which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[272:273) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + DataFactoryLogAnalyticsEffect: { +//@[10:644) ObjectPropertySyntax +//@[10:39) IdentifierSyntax +//@[10:39) Identifier |DataFactoryLogAnalyticsEffect| +//@[39:40) Colon |:| +//@[41:644) ObjectSyntax +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:414) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:414) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Data Factory to Log Analytics workspace' +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:99) StringSyntax +//@[27:99) StringComplete |'Deploy Diagnostic Settings for Data Factory to Log Analytics workspace'| +//@[99:100) NewLine |\n| + description: 'Deploys the diagnostic settings for Data Factory to stream to a Log Analytics workspace when any Data Factory which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:276) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:276) StringSyntax +//@[27:276) StringComplete |'Deploys the diagnostic settings for Data Factory to stream to a Log Analytics workspace when any Data Factory which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[276:277) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + DataLakeStoreLogAnalyticsEffect: { +//@[10:672) ObjectPropertySyntax +//@[10:41) IdentifierSyntax +//@[10:41) Identifier |DataLakeStoreLogAnalyticsEffect| +//@[41:42) Colon |:| +//@[43:672) ObjectSyntax +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:440) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:440) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Azure Data Lake Store to Log Analytics workspace' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Deploy Diagnostic Settings for Azure Data Lake Store to Log Analytics workspace'| +//@[108:109) NewLine |\n| + description: 'Deploys the diagnostic settings for Azure Data Lake Store to stream to a Log Analytics workspace when anyAzure Data Lake Store which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:293) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:293) StringSyntax +//@[27:293) StringComplete |'Deploys the diagnostic settings for Azure Data Lake Store to stream to a Log Analytics workspace when anyAzure Data Lake Store which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[293:294) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + DataLakeAnalyticsLogAnalyticsEffect: { +//@[10:671) ObjectPropertySyntax +//@[10:45) IdentifierSyntax +//@[10:45) Identifier |DataLakeAnalyticsLogAnalyticsEffect| +//@[45:46) Colon |:| +//@[47:671) ObjectSyntax +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:435) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:435) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Data Lake Analytics to Log Analytics workspace' +//@[14:106) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:106) StringSyntax +//@[27:106) StringComplete |'Deploy Diagnostic Settings for Data Lake Analytics to Log Analytics workspace'| +//@[106:107) NewLine |\n| + description: 'Deploys the diagnostic settings for Data Lake Analytics to stream to a Log Analytics workspace when any Data Lake Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:290) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:290) StringSyntax +//@[27:290) StringComplete |'Deploys the diagnostic settings for Data Lake Analytics to stream to a Log Analytics workspace when any Data Lake Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[290:291) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + EventGridSubLogAnalyticsEffect: { +//@[10:681) ObjectPropertySyntax +//@[10:40) IdentifierSyntax +//@[10:40) Identifier |EventGridSubLogAnalyticsEffect| +//@[40:41) Colon |:| +//@[42:681) ObjectSyntax +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:450) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:450) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Event Grid subscriptions to Log Analytics workspace' +//@[14:111) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:111) StringSyntax +//@[27:111) StringComplete |'Deploy Diagnostic Settings for Event Grid subscriptions to Log Analytics workspace'| +//@[111:112) NewLine |\n| + description: 'Deploys the diagnostic settings for Event Grid subscriptions to stream to a Log Analytics workspace when any Event Grid subscriptions which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:300) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:300) StringSyntax +//@[27:300) StringComplete |'Deploys the diagnostic settings for Event Grid subscriptions to stream to a Log Analytics workspace when any Event Grid subscriptions which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[300:301) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + EventGridTopicLogAnalyticsEffect: { +//@[10:659) ObjectPropertySyntax +//@[10:42) IdentifierSyntax +//@[10:42) Identifier |EventGridTopicLogAnalyticsEffect| +//@[42:43) Colon |:| +//@[44:659) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:426) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:426) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Event Grid Topic to Log Analytics workspace' +//@[14:103) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:103) StringSyntax +//@[27:103) StringComplete |'Deploy Diagnostic Settings for Event Grid Topic to Log Analytics workspace'| +//@[103:104) NewLine |\n| + description: 'Deploys the diagnostic settings for Event Grid Topic to stream to a Log Analytics workspace when any Event Grid Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:284) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:284) StringSyntax +//@[27:284) StringComplete |'Deploys the diagnostic settings for Event Grid Topic to stream to a Log Analytics workspace when any Event Grid Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[284:285) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + EventHubLogAnalyticsEffect: { +//@[10:635) ObjectPropertySyntax +//@[10:36) IdentifierSyntax +//@[10:36) Identifier |EventHubLogAnalyticsEffect| +//@[36:37) Colon |:| +//@[38:635) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:408) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:408) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Event Hubs to Log Analytics workspace' +//@[14:97) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:97) StringSyntax +//@[27:97) StringComplete |'Deploy Diagnostic Settings for Event Hubs to Log Analytics workspace'| +//@[97:98) NewLine |\n| + description: 'Deploys the diagnostic settings for Event Hubs to stream to a Log Analytics workspace when any Event Hubs which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:272) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:272) StringSyntax +//@[27:272) StringComplete |'Deploys the diagnostic settings for Event Hubs to stream to a Log Analytics workspace when any Event Hubs which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[272:273) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + EventSystemTopicLogAnalyticsEffect: { +//@[10:682) ObjectPropertySyntax +//@[10:44) IdentifierSyntax +//@[10:44) Identifier |EventSystemTopicLogAnalyticsEffect| +//@[44:45) Colon |:| +//@[46:682) ObjectSyntax +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:447) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:447) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Event Grid System Topic to Log Analytics workspace' +//@[14:110) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:110) StringSyntax +//@[27:110) StringComplete |'Deploy Diagnostic Settings for Event Grid System Topic to Log Analytics workspace'| +//@[110:111) NewLine |\n| + description: 'Deploys the diagnostic settings for Event Grid System Topic to stream to a Log Analytics workspace when any Event Grid System Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:298) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:298) StringSyntax +//@[27:298) StringComplete |'Deploys the diagnostic settings for Event Grid System Topic to stream to a Log Analytics workspace when any Event Grid System Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[298:299) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + ExpressRouteLogAnalyticsEffect: { +//@[10:645) ObjectPropertySyntax +//@[10:40) IdentifierSyntax +//@[10:40) Identifier |ExpressRouteLogAnalyticsEffect| +//@[40:41) Colon |:| +//@[42:645) ObjectSyntax +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:414) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:414) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for ExpressRoute to Log Analytics workspace' +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:99) StringSyntax +//@[27:99) StringComplete |'Deploy Diagnostic Settings for ExpressRoute to Log Analytics workspace'| +//@[99:100) NewLine |\n| + description: 'Deploys the diagnostic settings for ExpressRoute to stream to a Log Analytics workspace when any ExpressRoute which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:276) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:276) StringSyntax +//@[27:276) StringComplete |'Deploys the diagnostic settings for ExpressRoute to stream to a Log Analytics workspace when any ExpressRoute which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[276:277) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + FirewallLogAnalyticsEffect: { +//@[10:629) ObjectPropertySyntax +//@[10:36) IdentifierSyntax +//@[10:36) Identifier |FirewallLogAnalyticsEffect| +//@[36:37) Colon |:| +//@[38:629) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:402) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:402) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Firewall to Log Analytics workspace' +//@[14:95) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:95) StringSyntax +//@[27:95) StringComplete |'Deploy Diagnostic Settings for Firewall to Log Analytics workspace'| +//@[95:96) NewLine |\n| + description: 'Deploys the diagnostic settings for Firewall to stream to a Log Analytics workspace when any Firewall which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:268) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:268) StringSyntax +//@[27:268) StringComplete |'Deploys the diagnostic settings for Firewall to stream to a Log Analytics workspace when any Firewall which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[268:269) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + FrontDoorLogAnalyticsEffect: { +//@[10:636) ObjectPropertySyntax +//@[10:37) IdentifierSyntax +//@[10:37) Identifier |FrontDoorLogAnalyticsEffect| +//@[37:38) Colon |:| +//@[39:636) ObjectSyntax +//@[39:40) LeftBrace |{| +//@[40:41) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:408) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:408) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Front Door to Log Analytics workspace' +//@[14:97) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:97) StringSyntax +//@[27:97) StringComplete |'Deploy Diagnostic Settings for Front Door to Log Analytics workspace'| +//@[97:98) NewLine |\n| + description: 'Deploys the diagnostic settings for Front Door to stream to a Log Analytics workspace when any Front Door which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:272) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:272) StringSyntax +//@[27:272) StringComplete |'Deploys the diagnostic settings for Front Door to stream to a Log Analytics workspace when any Front Door which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[272:273) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + FunctionAppLogAnalyticsEffect: { +//@[10:656) ObjectPropertySyntax +//@[10:39) IdentifierSyntax +//@[10:39) Identifier |FunctionAppLogAnalyticsEffect| +//@[39:40) Colon |:| +//@[41:656) ObjectSyntax +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:426) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:426) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Azure Function App to Log Analytics workspace' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Deploy Diagnostic Settings for Azure Function App to Log Analytics workspace'| +//@[105:106) NewLine |\n| + description: 'Deploys the diagnostic settings for Azure Function App to stream to a Log Analytics workspace when any function app which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:282) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:282) StringSyntax +//@[27:282) StringComplete |'Deploys the diagnostic settings for Azure Function App to stream to a Log Analytics workspace when any function app which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[282:283) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + HDInsightLogAnalyticsEffect: { +//@[10:633) ObjectPropertySyntax +//@[10:37) IdentifierSyntax +//@[10:37) Identifier |HDInsightLogAnalyticsEffect| +//@[37:38) Colon |:| +//@[39:633) ObjectSyntax +//@[39:40) LeftBrace |{| +//@[40:41) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:405) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:405) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for HDInsight to Log Analytics workspace' +//@[14:96) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:96) StringSyntax +//@[27:96) StringComplete |'Deploy Diagnostic Settings for HDInsight to Log Analytics workspace'| +//@[96:97) NewLine |\n| + description: 'Deploys the diagnostic settings for HDInsight to stream to a Log Analytics workspace when any HDInsight which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:270) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:270) StringSyntax +//@[27:270) StringComplete |'Deploys the diagnostic settings for HDInsight to stream to a Log Analytics workspace when any HDInsight which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[270:271) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + IotHubLogAnalyticsEffect: { +//@[10:624) ObjectPropertySyntax +//@[10:34) IdentifierSyntax +//@[10:34) Identifier |IotHubLogAnalyticsEffect| +//@[34:35) Colon |:| +//@[36:624) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:399) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:399) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for IoT Hub to Log Analytics workspace' +//@[14:94) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:94) StringSyntax +//@[27:94) StringComplete |'Deploy Diagnostic Settings for IoT Hub to Log Analytics workspace'| +//@[94:95) NewLine |\n| + description: 'Deploys the diagnostic settings for IoT Hub to stream to a Log Analytics workspace when any IoT Hub which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:266) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:266) StringSyntax +//@[27:266) StringComplete |'Deploys the diagnostic settings for IoT Hub to stream to a Log Analytics workspace when any IoT Hub which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[266:267) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + KeyVaultLogAnalyticsEffect: { +//@[10:632) ObjectPropertySyntax +//@[10:36) IdentifierSyntax +//@[10:36) Identifier |KeyVaultLogAnalyticsEffect| +//@[36:37) Colon |:| +//@[38:632) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:405) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:405) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Key Vault to Log Analytics workspace' +//@[14:96) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:96) StringSyntax +//@[27:96) StringComplete |'Deploy Diagnostic Settings for Key Vault to Log Analytics workspace'| +//@[96:97) NewLine |\n| + description: 'Deploys the diagnostic settings for Key Vault to stream to a Log Analytics workspace when any Key Vault which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:270) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:270) StringSyntax +//@[27:270) StringComplete |'Deploys the diagnostic settings for Key Vault to stream to a Log Analytics workspace when any Key Vault which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[270:271) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + LoadBalancerLogAnalyticsEffect: { +//@[10:648) ObjectPropertySyntax +//@[10:40) IdentifierSyntax +//@[10:40) Identifier |LoadBalancerLogAnalyticsEffect| +//@[40:41) Colon |:| +//@[42:648) ObjectSyntax +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:417) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:417) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Load Balancer to Log Analytics workspace' +//@[14:100) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:100) StringSyntax +//@[27:100) StringComplete |'Deploy Diagnostic Settings for Load Balancer to Log Analytics workspace'| +//@[100:101) NewLine |\n| + description: 'Deploys the diagnostic settings for Load Balancer to stream to a Log Analytics workspace when any Load Balancer which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:278) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:278) StringSyntax +//@[27:278) StringComplete |'Deploys the diagnostic settings for Load Balancer to stream to a Log Analytics workspace when any Load Balancer which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[278:279) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + LogicAppsISELogAnalyticsEffect: { +//@[10:735) ObjectPropertySyntax +//@[10:40) IdentifierSyntax +//@[10:40) Identifier |LogicAppsISELogAnalyticsEffect| +//@[40:41) Colon |:| +//@[42:735) ObjectSyntax +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:504) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:504) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Logic Apps integration service environment to Log Analytics workspace' +//@[14:129) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:129) StringSyntax +//@[27:129) StringComplete |'Deploy Diagnostic Settings for Logic Apps integration service environment to Log Analytics workspace'| +//@[129:130) NewLine |\n| + description: 'Deploys the diagnostic settings for Logic Apps integration service environment to stream to a Log Analytics workspace when any Logic Apps integration service environment which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:336) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:336) StringSyntax +//@[27:336) StringComplete |'Deploys the diagnostic settings for Logic Apps integration service environment to stream to a Log Analytics workspace when any Logic Apps integration service environment which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[336:337) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + LogicAppsWFLogAnalyticsEffect: { +//@[10:688) ObjectPropertySyntax +//@[10:39) IdentifierSyntax +//@[10:39) Identifier |LogicAppsWFLogAnalyticsEffect| +//@[39:40) Colon |:| +//@[41:688) ObjectSyntax +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:458) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:458) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Logic Apps Workflow runtime to Log Analytics workspace' +//@[14:114) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:114) StringSyntax +//@[27:114) StringComplete |'Deploy Diagnostic Settings for Logic Apps Workflow runtime to Log Analytics workspace'| +//@[114:115) NewLine |\n| + description: 'Deploys the diagnostic settings for Logic Apps Workflow runtimeto stream to a Log Analytics workspace when any Logic Apps Workflow runtime which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:305) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:305) StringSyntax +//@[27:305) StringComplete |'Deploys the diagnostic settings for Logic Apps Workflow runtimeto stream to a Log Analytics workspace when any Logic Apps Workflow runtime which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[305:306) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + MariaDBLogAnalyticsEffect: { +//@[10:626) ObjectPropertySyntax +//@[10:35) IdentifierSyntax +//@[10:35) Identifier |MariaDBLogAnalyticsEffect| +//@[35:36) Colon |:| +//@[37:626) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:400) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:400) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for MariaDB to Log Analytics workspace' +//@[14:94) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:94) StringSyntax +//@[27:94) StringComplete |'Deploy Diagnostic Settings for MariaDB to Log Analytics workspace'| +//@[94:95) NewLine |\n| + description: 'Deploys the diagnostic settings for MariaDB to stream to a Log Analytics workspace when any MariaDB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:267) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:267) StringSyntax +//@[27:267) StringComplete |'Deploys the diagnostic settings for MariaDB to stream to a Log Analytics workspace when any MariaDB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[267:268) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + MlWorkspaceLogAnalyticsEffect: { +//@[10:686) ObjectPropertySyntax +//@[10:39) IdentifierSyntax +//@[10:39) Identifier |MlWorkspaceLogAnalyticsEffect| +//@[39:40) Colon |:| +//@[41:686) ObjectSyntax +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:456) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:456) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Machine Learning workspace to Log Analytics workspace' +//@[14:113) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:113) StringSyntax +//@[27:113) StringComplete |'Deploy Diagnostic Settings for Machine Learning workspace to Log Analytics workspace'| +//@[113:114) NewLine |\n| + description: 'Deploys the diagnostic settings for Machine Learning workspace to stream to a Log Analytics workspace when any Machine Learning workspace which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:304) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:304) StringSyntax +//@[27:304) StringComplete |'Deploys the diagnostic settings for Machine Learning workspace to stream to a Log Analytics workspace when any Machine Learning workspace which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[304:305) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + MySQLLogAnalyticsEffect: { +//@[10:656) ObjectPropertySyntax +//@[10:33) IdentifierSyntax +//@[10:33) Identifier |MySQLLogAnalyticsEffect| +//@[33:34) Colon |:| +//@[35:656) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:432) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:432) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Database for MySQL to Log Analytics workspace' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Deploy Diagnostic Settings for Database for MySQL to Log Analytics workspace'| +//@[105:106) NewLine |\n| + description: 'Deploys the diagnostic settings for Database for MySQL to stream to a Log Analytics workspace when any Database for MySQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:288) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:288) StringSyntax +//@[27:288) StringComplete |'Deploys the diagnostic settings for Database for MySQL to stream to a Log Analytics workspace when any Database for MySQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[288:289) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + NetworkSecurityGroupsLogAnalyticsEffect: { +//@[10:687) ObjectPropertySyntax +//@[10:49) IdentifierSyntax +//@[10:49) Identifier |NetworkSecurityGroupsLogAnalyticsEffect| +//@[49:50) Colon |:| +//@[51:687) ObjectSyntax +//@[51:52) LeftBrace |{| +//@[52:53) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:447) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:447) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Network Security Groups to Log Analytics workspace' +//@[14:110) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:110) StringSyntax +//@[27:110) StringComplete |'Deploy Diagnostic Settings for Network Security Groups to Log Analytics workspace'| +//@[110:111) NewLine |\n| + description: 'Deploys the diagnostic settings for Network Security Groups to stream to a Log Analytics workspace when any Network Security Groups which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:298) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:298) StringSyntax +//@[27:298) StringComplete |'Deploys the diagnostic settings for Network Security Groups to stream to a Log Analytics workspace when any Network Security Groups which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[298:299) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + NetworkNICLogAnalyticsEffect: { +//@[10:661) ObjectPropertySyntax +//@[10:38) IdentifierSyntax +//@[10:38) Identifier |NetworkNICLogAnalyticsEffect| +//@[38:39) Colon |:| +//@[40:661) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:432) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:432) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Network Interfaces to Log Analytics workspace' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Deploy Diagnostic Settings for Network Interfaces to Log Analytics workspace'| +//@[105:106) NewLine |\n| + description: 'Deploys the diagnostic settings for Network Interfaces to stream to a Log Analytics workspace when any Network Interfaces which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:288) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:288) StringSyntax +//@[27:288) StringComplete |'Deploys the diagnostic settings for Network Interfaces to stream to a Log Analytics workspace when any Network Interfaces which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[288:289) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + PostgreSQLLogAnalyticsEffect: { +//@[10:676) ObjectPropertySyntax +//@[10:38) IdentifierSyntax +//@[10:38) Identifier |PostgreSQLLogAnalyticsEffect| +//@[38:39) Colon |:| +//@[40:676) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:447) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:447) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Database for PostgreSQL to Log Analytics workspace' +//@[14:110) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:110) StringSyntax +//@[27:110) StringComplete |'Deploy Diagnostic Settings for Database for PostgreSQL to Log Analytics workspace'| +//@[110:111) NewLine |\n| + description: 'Deploys the diagnostic settings for Database for PostgreSQL to stream to a Log Analytics workspace when any Database for PostgreSQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:298) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:298) StringSyntax +//@[27:298) StringComplete |'Deploys the diagnostic settings for Database for PostgreSQL to stream to a Log Analytics workspace when any Database for PostgreSQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[298:299) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + PowerBIEmbeddedLogAnalyticsEffect: { +//@[10:663) ObjectPropertySyntax +//@[10:43) IdentifierSyntax +//@[10:43) Identifier |PowerBIEmbeddedLogAnalyticsEffect| +//@[43:44) Colon |:| +//@[45:663) ObjectSyntax +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:429) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:429) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Power BI Embedded to Log Analytics workspace' +//@[14:104) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:104) StringSyntax +//@[27:104) StringComplete |'Deploy Diagnostic Settings for Power BI Embedded to Log Analytics workspace'| +//@[104:105) NewLine |\n| + description: 'Deploys the diagnostic settings for Power BI Embedded to stream to a Log Analytics workspace when any Power BI Embedded which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:286) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:286) StringSyntax +//@[27:286) StringComplete |'Deploys the diagnostic settings for Power BI Embedded to stream to a Log Analytics workspace when any Power BI Embedded which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[286:287) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + NetworkPublicIPNicLogAnalyticsEffect: { +//@[10:672) ObjectPropertySyntax +//@[10:46) IdentifierSyntax +//@[10:46) Identifier |NetworkPublicIPNicLogAnalyticsEffect| +//@[46:47) Colon |:| +//@[48:672) ObjectSyntax +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:435) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:435) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Public IP addresses to Log Analytics workspace' +//@[14:106) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:106) StringSyntax +//@[27:106) StringComplete |'Deploy Diagnostic Settings for Public IP addresses to Log Analytics workspace'| +//@[106:107) NewLine |\n| + description: 'Deploys the diagnostic settings for Public IP addresses to stream to a Log Analytics workspace when any Public IP addresses which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:290) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:290) StringSyntax +//@[27:290) StringComplete |'Deploys the diagnostic settings for Public IP addresses to stream to a Log Analytics workspace when any Public IP addresses which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[290:291) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + RecoveryVaultLogAnalyticsEffect: { +//@[10:682) ObjectPropertySyntax +//@[10:41) IdentifierSyntax +//@[10:41) Identifier |RecoveryVaultLogAnalyticsEffect| +//@[41:42) Colon |:| +//@[43:682) ObjectSyntax +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:450) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:450) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Recovery Services vaults to Log Analytics workspace' +//@[14:111) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:111) StringSyntax +//@[27:111) StringComplete |'Deploy Diagnostic Settings for Recovery Services vaults to Log Analytics workspace'| +//@[111:112) NewLine |\n| + description: 'Deploys the diagnostic settings for Recovery Services vaults to stream to a Log Analytics workspace when any Recovery Services vaults which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:300) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:300) StringSyntax +//@[27:300) StringComplete |'Deploys the diagnostic settings for Recovery Services vaults to stream to a Log Analytics workspace when any Recovery Services vaults which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[300:301) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + RedisCacheLogAnalyticsEffect: { +//@[10:640) ObjectPropertySyntax +//@[10:38) IdentifierSyntax +//@[10:38) Identifier |RedisCacheLogAnalyticsEffect| +//@[38:39) Colon |:| +//@[40:640) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:411) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:411) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Redis Cache to Log Analytics workspace' +//@[14:98) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:98) StringSyntax +//@[27:98) StringComplete |'Deploy Diagnostic Settings for Redis Cache to Log Analytics workspace'| +//@[98:99) NewLine |\n| + description: 'Deploys the diagnostic settings for Redis Cache to stream to a Log Analytics workspace when any Redis Cache which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:274) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:274) StringSyntax +//@[27:274) StringComplete |'Deploys the diagnostic settings for Redis Cache to stream to a Log Analytics workspace when any Redis Cache which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[274:275) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + RelayLogAnalyticsEffect: { +//@[10:617) ObjectPropertySyntax +//@[10:33) IdentifierSyntax +//@[10:33) Identifier |RelayLogAnalyticsEffect| +//@[33:34) Colon |:| +//@[35:617) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:393) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:393) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Relay to Log Analytics workspace' +//@[14:92) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:92) StringSyntax +//@[27:92) StringComplete |'Deploy Diagnostic Settings for Relay to Log Analytics workspace'| +//@[92:93) NewLine |\n| + description: 'Deploys the diagnostic settings for Relay to stream to a Log Analytics workspace when any Relay which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:262) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:262) StringSyntax +//@[27:262) StringComplete |'Deploys the diagnostic settings for Relay to stream to a Log Analytics workspace when any Relay which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[262:263) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + SearchServicesLogAnalyticsEffect: { +//@[10:656) ObjectPropertySyntax +//@[10:42) IdentifierSyntax +//@[10:42) Identifier |SearchServicesLogAnalyticsEffect| +//@[42:43) Colon |:| +//@[44:656) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:423) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:423) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Search Services to Log Analytics workspace' +//@[14:102) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:102) StringSyntax +//@[27:102) StringComplete |'Deploy Diagnostic Settings for Search Services to Log Analytics workspace'| +//@[102:103) NewLine |\n| + description: 'Deploys the diagnostic settings for Search Services to stream to a Log Analytics workspace when any Search Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:282) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:282) StringSyntax +//@[27:282) StringComplete |'Deploys the diagnostic settings for Search Services to stream to a Log Analytics workspace when any Search Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[282:283) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + ServiceBusLogAnalyticsEffect: { +//@[10:650) ObjectPropertySyntax +//@[10:38) IdentifierSyntax +//@[10:38) Identifier |ServiceBusLogAnalyticsEffect| +//@[38:39) Colon |:| +//@[40:650) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:421) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:421) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Service Bus namespaces to Log Analytics workspace' +//@[14:110) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:110) StringSyntax +//@[27:110) StringComplete |'Deploy Diagnostic Settings for Service Bus namespaces to Log Analytics workspace'| +//@[110:111) NewLine |\n| + description: 'Deploys the diagnostic settings for ServiceBus to stream to a Log Analytics workspace when any ServiceBus which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:272) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:272) StringSyntax +//@[27:272) StringComplete |'Deploys the diagnostic settings for ServiceBus to stream to a Log Analytics workspace when any ServiceBus which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[272:273) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + SignalRLogAnalyticsEffect: { +//@[10:625) ObjectPropertySyntax +//@[10:35) IdentifierSyntax +//@[10:35) Identifier |SignalRLogAnalyticsEffect| +//@[35:36) Colon |:| +//@[37:625) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:399) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:399) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for SignalR to Log Analytics workspace' +//@[14:94) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:94) StringSyntax +//@[27:94) StringComplete |'Deploy Diagnostic Settings for SignalR to Log Analytics workspace'| +//@[94:95) NewLine |\n| + description: 'Deploys the diagnostic settings for SignalR to stream to a Log Analytics workspace when any SignalR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:266) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:266) StringSyntax +//@[27:266) StringComplete |'Deploys the diagnostic settings for SignalR to stream to a Log Analytics workspace when any SignalR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[266:267) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + SQLDBsLogAnalyticsEffect: { +//@[10:644) ObjectPropertySyntax +//@[10:34) IdentifierSyntax +//@[10:34) Identifier |SQLDBsLogAnalyticsEffect| +//@[34:35) Colon |:| +//@[36:644) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:419) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:419) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for SQL Databases to Log Analytics workspace' +//@[14:101) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:101) StringSyntax +//@[27:101) StringComplete |'Deploy Diagnostic Settings for SQL Databases to Log Analytics workspace'| +//@[101:102) NewLine |\n| + description: 'Deploys the diagnostic settings for SQL Databases to stream to a Log Analytics workspace when any SQL Databases which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:279) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:279) StringSyntax +//@[27:279) StringComplete |'Deploys the diagnostic settings for SQL Databases to stream to a Log Analytics workspace when any SQL Databases which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[279:280) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + SQLElasticPoolsLogAnalyticsEffect: { +//@[10:663) ObjectPropertySyntax +//@[10:43) IdentifierSyntax +//@[10:43) Identifier |SQLElasticPoolsLogAnalyticsEffect| +//@[43:44) Colon |:| +//@[45:663) ObjectSyntax +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:429) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:429) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for SQL Elastic Pools to Log Analytics workspace' +//@[14:104) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:104) StringSyntax +//@[27:104) StringComplete |'Deploy Diagnostic Settings for SQL Elastic Pools to Log Analytics workspace'| +//@[104:105) NewLine |\n| + description: 'Deploys the diagnostic settings for SQL Elastic Pools to stream to a Log Analytics workspace when any SQL Elastic Pools which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:286) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:286) StringSyntax +//@[27:286) StringComplete |'Deploys the diagnostic settings for SQL Elastic Pools to stream to a Log Analytics workspace when any SQL Elastic Pools which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[286:287) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + SQLMLogAnalyticsEffect: { +//@[10:664) ObjectPropertySyntax +//@[10:32) IdentifierSyntax +//@[10:32) Identifier |SQLMLogAnalyticsEffect| +//@[32:33) Colon |:| +//@[34:664) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:441) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:441) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for SQL Managed Instances to Log Analytics workspace' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Deploy Diagnostic Settings for SQL Managed Instances to Log Analytics workspace'| +//@[108:109) NewLine |\n| + description: 'Deploys the diagnostic settings for SQL Managed Instances to stream to a Log Analytics workspace when any SQL Managed Instances which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:294) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:294) StringSyntax +//@[27:294) StringComplete |'Deploys the diagnostic settings for SQL Managed Instances to stream to a Log Analytics workspace when any SQL Managed Instances which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[294:295) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + StreamAnalyticsLogAnalyticsEffect: { +//@[10:660) ObjectPropertySyntax +//@[10:43) IdentifierSyntax +//@[10:43) Identifier |StreamAnalyticsLogAnalyticsEffect| +//@[43:44) Colon |:| +//@[45:660) ObjectSyntax +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:426) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:426) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Stream Analytics to Log Analytics workspace' +//@[14:103) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:103) StringSyntax +//@[27:103) StringComplete |'Deploy Diagnostic Settings for Stream Analytics to Log Analytics workspace'| +//@[103:104) NewLine |\n| + description: 'Deploys the diagnostic settings for Stream Analytics to stream to a Log Analytics workspace when any Stream Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:284) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:284) StringSyntax +//@[27:284) StringComplete |'Deploys the diagnostic settings for Stream Analytics to stream to a Log Analytics workspace when any Stream Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[284:285) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + TimeSeriesInsightsLogAnalyticsEffect: { +//@[10:675) ObjectPropertySyntax +//@[10:46) IdentifierSyntax +//@[10:46) Identifier |TimeSeriesInsightsLogAnalyticsEffect| +//@[46:47) Colon |:| +//@[48:675) ObjectSyntax +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:438) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:438) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Time Series Insights to Log Analytics workspace' +//@[14:107) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:107) StringSyntax +//@[27:107) StringComplete |'Deploy Diagnostic Settings for Time Series Insights to Log Analytics workspace'| +//@[107:108) NewLine |\n| + description: 'Deploys the diagnostic settings for Time Series Insights to stream to a Log Analytics workspace when any Time Series Insights which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:292) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:292) StringSyntax +//@[27:292) StringComplete |'Deploys the diagnostic settings for Time Series Insights to stream to a Log Analytics workspace when any Time Series Insights which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[292:293) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + TrafficManagerLogAnalyticsEffect: { +//@[10:656) ObjectPropertySyntax +//@[10:42) IdentifierSyntax +//@[10:42) Identifier |TrafficManagerLogAnalyticsEffect| +//@[42:43) Colon |:| +//@[44:656) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:423) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:423) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Traffic Manager to Log Analytics workspace' +//@[14:102) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:102) StringSyntax +//@[27:102) StringComplete |'Deploy Diagnostic Settings for Traffic Manager to Log Analytics workspace'| +//@[102:103) NewLine |\n| + description: 'Deploys the diagnostic settings for Traffic Manager to stream to a Log Analytics workspace when any Traffic Manager which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:282) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:282) StringSyntax +//@[27:282) StringComplete |'Deploys the diagnostic settings for Traffic Manager to stream to a Log Analytics workspace when any Traffic Manager which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[282:283) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + VirtualNetworkLogAnalyticsEffect: { +//@[10:656) ObjectPropertySyntax +//@[10:42) IdentifierSyntax +//@[10:42) Identifier |VirtualNetworkLogAnalyticsEffect| +//@[42:43) Colon |:| +//@[44:656) ObjectSyntax +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:423) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:423) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Virtual Network to Log Analytics workspace' +//@[14:102) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:102) StringSyntax +//@[27:102) StringComplete |'Deploy Diagnostic Settings for Virtual Network to Log Analytics workspace'| +//@[102:103) NewLine |\n| + description: 'Deploys the diagnostic settings for Virtual Network to stream to a Log Analytics workspace when any Virtual Network which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:282) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:282) StringSyntax +//@[27:282) StringComplete |'Deploys the diagnostic settings for Virtual Network to stream to a Log Analytics workspace when any Virtual Network which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[282:283) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + VirtualMachinesLogAnalyticsEffect: { +//@[10:660) ObjectPropertySyntax +//@[10:43) IdentifierSyntax +//@[10:43) Identifier |VirtualMachinesLogAnalyticsEffect| +//@[43:44) Colon |:| +//@[45:660) ObjectSyntax +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:426) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:426) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Virtual Machines to Log Analytics workspace' +//@[14:103) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:103) StringSyntax +//@[27:103) StringComplete |'Deploy Diagnostic Settings for Virtual Machines to Log Analytics workspace'| +//@[103:104) NewLine |\n| + description: 'Deploys the diagnostic settings for Virtual Machines to stream to a Log Analytics workspace when any Virtual Machines which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:284) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:284) StringSyntax +//@[27:284) StringComplete |'Deploys the diagnostic settings for Virtual Machines to stream to a Log Analytics workspace when any Virtual Machines which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[284:285) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + VMSSLogAnalyticsEffect: { +//@[10:681) ObjectPropertySyntax +//@[10:32) IdentifierSyntax +//@[10:32) Identifier |VMSSLogAnalyticsEffect| +//@[32:33) Colon |:| +//@[34:681) ObjectSyntax +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:458) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:458) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Virtual Machine Scale Sets to Log Analytics workspace' +//@[14:113) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:113) StringSyntax +//@[27:113) StringComplete |'Deploy Diagnostic Settings for Virtual Machine Scale Sets to Log Analytics workspace'| +//@[113:114) NewLine |\n| + description: 'Deploys the diagnostic settings for Virtual Machine Scale Sets to stream to a Log Analytics workspace when any Virtual Machine Scale Sets which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:306) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:306) StringSyntax +//@[27:306) StringComplete |'Deploys the diagnostic settings for Virtual Machine Scale Sets to stream to a Log Analytics workspace when any Virtual Machine Scale Sets which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[306:307) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + VNetGWLogAnalyticsEffect: { +//@[10:637) ObjectPropertySyntax +//@[10:34) IdentifierSyntax +//@[10:34) Identifier |VNetGWLogAnalyticsEffect| +//@[34:35) Colon |:| +//@[36:637) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:412) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:412) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for VPN Gateway to Log Analytics workspace' +//@[14:98) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:98) StringSyntax +//@[27:98) StringComplete |'Deploy Diagnostic Settings for VPN Gateway to Log Analytics workspace'| +//@[98:99) NewLine |\n| + description: 'Deploys the diagnostic settings for VPN Gateway to stream to a Log Analytics workspace when any VPN Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.' +//@[14:275) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:275) StringSyntax +//@[27:275) StringComplete |'Deploys the diagnostic settings for VPN Gateway to stream to a Log Analytics workspace when any VPN Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.'| +//@[275:276) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + AppServiceLogAnalyticsEffect: { +//@[10:655) ObjectPropertySyntax +//@[10:38) IdentifierSyntax +//@[10:38) Identifier |AppServiceLogAnalyticsEffect| +//@[38:39) Colon |:| +//@[40:655) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:426) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:426) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for App Service Plan to Log Analytics workspace' +//@[14:103) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:103) StringSyntax +//@[27:103) StringComplete |'Deploy Diagnostic Settings for App Service Plan to Log Analytics workspace'| +//@[103:104) NewLine |\n| + description: 'Deploys the diagnostic settings for App Service Plan to stream to a Log Analytics workspace when any App Service Plan which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:284) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:284) StringSyntax +//@[27:284) StringComplete |'Deploys the diagnostic settings for App Service Plan to stream to a Log Analytics workspace when any App Service Plan which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[284:285) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + AppServiceWebappLogAnalyticsEffect: { +//@[10:638) ObjectPropertySyntax +//@[10:44) IdentifierSyntax +//@[10:44) Identifier |AppServiceWebappLogAnalyticsEffect| +//@[44:45) Colon |:| +//@[46:638) ObjectSyntax +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:403) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:403) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for App Service to Log Analytics workspace' +//@[14:98) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:98) StringSyntax +//@[27:98) StringComplete |'Deploy Diagnostic Settings for App Service to Log Analytics workspace'| +//@[98:99) NewLine |\n| + description: 'Deploys the diagnostic settings for Web App to stream to a Log Analytics workspace when any Web App which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:266) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:266) StringSyntax +//@[27:266) StringComplete |'Deploys the diagnostic settings for Web App to stream to a Log Analytics workspace when any Web App which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[266:267) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyDefinitionGroups: null +//@[8:36) ObjectPropertySyntax +//@[8:30) IdentifierSyntax +//@[8:30) Identifier |PolicyDefinitionGroups| +//@[30:31) Colon |:| +//@[32:36) NullLiteralSyntax +//@[32:36) NullKeyword |null| +//@[36:37) NewLine |\n| + metadata: { +//@[8:89) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:89) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:32) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringSyntax +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyDefinitions: [ +//@[8:32785) ObjectPropertySyntax +//@[8:25) IdentifierSyntax +//@[8:25) Identifier |PolicyDefinitions| +//@[25:26) Colon |:| +//@[27:32785) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + { +//@[10:572) ArrayItemSyntax +//@[10:572) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ACI' +//@[12:117) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:117) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:117) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ACI'| +//@[117:118) NewLine |\n| + policyDefinitionReferenceId: 'ACIDeployDiagnosticLogDeployLogAnalytics' +//@[12:83) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:83) StringSyntax +//@[41:83) StringComplete |'ACIDeployDiagnosticLogDeployLogAnalytics'| +//@[83:84) NewLine |\n| + parameters: { +//@[12:346) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:346) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:104) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:104) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'ACILogAnalyticsEffect\')]' +//@[16:64) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:64) StringSyntax +//@[23:64) StringComplete |'[parameters(\'ACILogAnalyticsEffect\')]'| +//@[64:65) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:572) ArrayItemSyntax +//@[10:572) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ACR' +//@[12:117) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:117) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:117) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ACR'| +//@[117:118) NewLine |\n| + policyDefinitionReferenceId: 'ACRDeployDiagnosticLogDeployLogAnalytics' +//@[12:83) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:83) StringSyntax +//@[41:83) StringComplete |'ACRDeployDiagnosticLogDeployLogAnalytics'| +//@[83:84) NewLine |\n| + parameters: { +//@[12:346) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:346) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:104) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:104) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'ACRLogAnalyticsEffect\')]' +//@[16:64) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:64) StringSyntax +//@[23:64) StringComplete |'[parameters(\'ACRLogAnalyticsEffect\')]'| +//@[64:65) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:572) ArrayItemSyntax +//@[10:572) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AKS' +//@[12:117) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:117) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:117) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AKS'| +//@[117:118) NewLine |\n| + policyDefinitionReferenceId: 'AKSDeployDiagnosticLogDeployLogAnalytics' +//@[12:83) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:83) StringSyntax +//@[41:83) StringComplete |'AKSDeployDiagnosticLogDeployLogAnalytics'| +//@[83:84) NewLine |\n| + parameters: { +//@[12:346) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:346) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:104) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:104) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'AKSLogAnalyticsEffect\')]' +//@[16:64) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:64) StringSyntax +//@[23:64) StringComplete |'[parameters(\'AKSLogAnalyticsEffect\')]'| +//@[64:65) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:608) ArrayItemSyntax +//@[10:608) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AnalysisService' +//@[12:129) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:129) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:129) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AnalysisService'| +//@[129:130) NewLine |\n| + policyDefinitionReferenceId: 'AnalysisServiceDeployDiagnosticLogDeployLogAnalytics' +//@[12:95) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:95) StringSyntax +//@[41:95) StringComplete |'AnalysisServiceDeployDiagnosticLogDeployLogAnalytics'| +//@[95:96) NewLine |\n| + parameters: { +//@[12:358) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:358) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:116) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:116) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'AnalysisServiceLogAnalyticsEffect\')]' +//@[16:76) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:76) StringSyntax +//@[23:76) StringComplete |'[parameters(\'AnalysisServiceLogAnalyticsEffect\')]'| +//@[76:77) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:584) ArrayItemSyntax +//@[10:584) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-APIMgmt' +//@[12:121) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:121) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:121) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-APIMgmt'| +//@[121:122) NewLine |\n| + policyDefinitionReferenceId: 'APIMgmtDeployDiagnosticLogDeployLogAnalytics' +//@[12:87) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:87) StringSyntax +//@[41:87) StringComplete |'APIMgmtDeployDiagnosticLogDeployLogAnalytics'| +//@[87:88) NewLine |\n| + parameters: { +//@[12:350) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:350) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:108) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:108) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'APIMgmtLogAnalyticsEffect\')]' +//@[16:68) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:68) StringSyntax +//@[23:68) StringComplete |'[parameters(\'APIMgmtLogAnalyticsEffect\')]'| +//@[68:69) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:617) ArrayItemSyntax +//@[10:617) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ApplicationGateway' +//@[12:132) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:132) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:132) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ApplicationGateway'| +//@[132:133) NewLine |\n| + policyDefinitionReferenceId: 'ApplicationGatewayDeployDiagnosticLogDeployLogAnalytics' +//@[12:98) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:98) StringSyntax +//@[41:98) StringComplete |'ApplicationGatewayDeployDiagnosticLogDeployLogAnalytics'| +//@[98:99) NewLine |\n| + parameters: { +//@[12:361) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:361) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:119) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:119) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'ApplicationGatewayLogAnalyticsEffect\')]' +//@[16:79) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:79) StringSyntax +//@[23:79) StringComplete |'[parameters(\'ApplicationGatewayLogAnalyticsEffect\')]'| +//@[79:80) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:585) ArrayItemSyntax +//@[10:585) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AA' +//@[12:116) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:116) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:116) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AA'| +//@[116:117) NewLine |\n| + policyDefinitionReferenceId: 'AutomationDeployDiagnosticLogDeployLogAnalytics' +//@[12:90) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:90) StringSyntax +//@[41:90) StringComplete |'AutomationDeployDiagnosticLogDeployLogAnalytics'| +//@[90:91) NewLine |\n| + parameters: { +//@[12:353) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:353) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:111) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:111) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'AutomationLogAnalyticsEffect\')]' +//@[16:71) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:71) StringSyntax +//@[23:71) StringComplete |'[parameters(\'AutomationLogAnalyticsEffect\')]'| +//@[71:72) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:578) ArrayItemSyntax +//@[10:578) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Batch' +//@[12:119) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:119) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:119) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Batch'| +//@[119:120) NewLine |\n| + policyDefinitionReferenceId: 'BatchDeployDiagnosticLogDeployLogAnalytics' +//@[12:85) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:85) StringSyntax +//@[41:85) StringComplete |'BatchDeployDiagnosticLogDeployLogAnalytics'| +//@[85:86) NewLine |\n| + parameters: { +//@[12:348) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:348) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:106) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:106) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'BatchLogAnalyticsEffect\')]' +//@[16:66) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:66) StringSyntax +//@[23:66) StringComplete |'[parameters(\'BatchLogAnalyticsEffect\')]'| +//@[66:67) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:599) ArrayItemSyntax +//@[10:599) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CDNEndpoints' +//@[12:126) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:126) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:126) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CDNEndpoints'| +//@[126:127) NewLine |\n| + policyDefinitionReferenceId: 'CDNEndpointsDeployDiagnosticLogDeployLogAnalytics' +//@[12:92) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:92) StringSyntax +//@[41:92) StringComplete |'CDNEndpointsDeployDiagnosticLogDeployLogAnalytics'| +//@[92:93) NewLine |\n| + parameters: { +//@[12:355) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:355) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:113) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:113) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'CDNEndpointsLogAnalyticsEffect\')]' +//@[16:73) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:73) StringSyntax +//@[23:73) StringComplete |'[parameters(\'CDNEndpointsLogAnalyticsEffect\')]'| +//@[73:74) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:614) ArrayItemSyntax +//@[10:614) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CognitiveServices' +//@[12:131) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:131) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:131) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CognitiveServices'| +//@[131:132) NewLine |\n| + policyDefinitionReferenceId: 'CognitiveServicesDeployDiagnosticLogDeployLogAnalytics' +//@[12:97) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:97) StringSyntax +//@[41:97) StringComplete |'CognitiveServicesDeployDiagnosticLogDeployLogAnalytics'| +//@[97:98) NewLine |\n| + parameters: { +//@[12:360) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:360) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:118) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:118) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'CognitiveServicesLogAnalyticsEffect\')]' +//@[16:78) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:78) StringSyntax +//@[23:78) StringComplete |'[parameters(\'CognitiveServicesLogAnalyticsEffect\')]'| +//@[78:79) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:583) ArrayItemSyntax +//@[10:583) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CosmosDB' +//@[12:122) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:122) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:122) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CosmosDB'| +//@[122:123) NewLine |\n| + policyDefinitionReferenceId: 'CosmosDeployDiagnosticLogDeployLogAnalytics' +//@[12:86) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:86) StringSyntax +//@[41:86) StringComplete |'CosmosDeployDiagnosticLogDeployLogAnalytics'| +//@[86:87) NewLine |\n| + parameters: { +//@[12:349) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:349) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:107) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:107) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'CosmosLogAnalyticsEffect\')]' +//@[16:67) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:67) StringSyntax +//@[23:67) StringComplete |'[parameters(\'CosmosLogAnalyticsEffect\')]'| +//@[67:68) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:593) ArrayItemSyntax +//@[10:593) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Databricks' +//@[12:124) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:124) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:124) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Databricks'| +//@[124:125) NewLine |\n| + policyDefinitionReferenceId: 'DatabricksDeployDiagnosticLogDeployLogAnalytics' +//@[12:90) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:90) StringSyntax +//@[41:90) StringComplete |'DatabricksDeployDiagnosticLogDeployLogAnalytics'| +//@[90:91) NewLine |\n| + parameters: { +//@[12:353) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:353) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:111) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:111) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'DatabricksLogAnalyticsEffect\')]' +//@[16:71) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:71) StringSyntax +//@[23:71) StringComplete |'[parameters(\'DatabricksLogAnalyticsEffect\')]'| +//@[71:72) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:596) ArrayItemSyntax +//@[10:596) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DataFactory' +//@[12:125) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:125) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:125) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DataFactory'| +//@[125:126) NewLine |\n| + policyDefinitionReferenceId: 'DataFactoryDeployDiagnosticLogDeployLogAnalytics' +//@[12:91) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:91) StringSyntax +//@[41:91) StringComplete |'DataFactoryDeployDiagnosticLogDeployLogAnalytics'| +//@[91:92) NewLine |\n| + parameters: { +//@[12:354) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:354) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:112) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:112) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'DataFactoryLogAnalyticsEffect\')]' +//@[16:72) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:72) StringSyntax +//@[23:72) StringComplete |'[parameters(\'DataFactoryLogAnalyticsEffect\')]'| +//@[72:73) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:602) ArrayItemSyntax +//@[10:602) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DataLakeStore' +//@[12:127) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:127) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:127) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DataLakeStore'| +//@[127:128) NewLine |\n| + policyDefinitionReferenceId: 'DataLakeStoreDeployDiagnosticLogDeployLogAnalytics' +//@[12:93) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:93) StringSyntax +//@[41:93) StringComplete |'DataLakeStoreDeployDiagnosticLogDeployLogAnalytics'| +//@[93:94) NewLine |\n| + parameters: { +//@[12:356) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:356) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:114) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:114) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'DataLakeStoreLogAnalyticsEffect\')]' +//@[16:74) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:74) StringSyntax +//@[23:74) StringComplete |'[parameters(\'DataLakeStoreLogAnalyticsEffect\')]'| +//@[74:75) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:608) ArrayItemSyntax +//@[10:608) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DLAnalytics' +//@[12:125) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:125) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:125) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DLAnalytics'| +//@[125:126) NewLine |\n| + policyDefinitionReferenceId: 'DataLakeAnalyticsDeployDiagnosticLogDeployLogAnalytics' +//@[12:97) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:97) StringSyntax +//@[41:97) StringComplete |'DataLakeAnalyticsDeployDiagnosticLogDeployLogAnalytics'| +//@[97:98) NewLine |\n| + parameters: { +//@[12:360) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:360) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:118) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:118) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'DataLakeAnalyticsLogAnalyticsEffect\')]' +//@[16:78) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:78) StringSyntax +//@[23:78) StringComplete |'[parameters(\'DataLakeAnalyticsLogAnalyticsEffect\')]'| +//@[78:79) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:599) ArrayItemSyntax +//@[10:599) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridSub' +//@[12:126) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:126) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:126) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridSub'| +//@[126:127) NewLine |\n| + policyDefinitionReferenceId: 'EventGridSubDeployDiagnosticLogDeployLogAnalytics' +//@[12:92) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:92) StringSyntax +//@[41:92) StringComplete |'EventGridSubDeployDiagnosticLogDeployLogAnalytics'| +//@[92:93) NewLine |\n| + parameters: { +//@[12:355) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:355) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:113) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:113) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'EventGridSubLogAnalyticsEffect\')]' +//@[16:73) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:73) StringSyntax +//@[23:73) StringComplete |'[parameters(\'EventGridSubLogAnalyticsEffect\')]'| +//@[73:74) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:605) ArrayItemSyntax +//@[10:605) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridTopic' +//@[12:128) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:128) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:128) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridTopic'| +//@[128:129) NewLine |\n| + policyDefinitionReferenceId: 'EventGridTopicDeployDiagnosticLogDeployLogAnalytics' +//@[12:94) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:94) StringSyntax +//@[41:94) StringComplete |'EventGridTopicDeployDiagnosticLogDeployLogAnalytics'| +//@[94:95) NewLine |\n| + parameters: { +//@[12:357) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:357) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:115) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:115) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'EventGridTopicLogAnalyticsEffect\')]' +//@[16:75) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:75) StringSyntax +//@[23:75) StringComplete |'[parameters(\'EventGridTopicLogAnalyticsEffect\')]'| +//@[75:76) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:587) ArrayItemSyntax +//@[10:587) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventHub' +//@[12:122) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:122) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:122) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventHub'| +//@[122:123) NewLine |\n| + policyDefinitionReferenceId: 'EventHubDeployDiagnosticLogDeployLogAnalytics' +//@[12:88) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:88) StringSyntax +//@[41:88) StringComplete |'EventHubDeployDiagnosticLogDeployLogAnalytics'| +//@[88:89) NewLine |\n| + parameters: { +//@[12:351) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:351) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:109) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:109) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'EventHubLogAnalyticsEffect\')]' +//@[16:69) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:69) StringSyntax +//@[23:69) StringComplete |'[parameters(\'EventHubLogAnalyticsEffect\')]'| +//@[69:70) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:615) ArrayItemSyntax +//@[10:615) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridSystemTopic' +//@[12:134) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:134) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:134) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridSystemTopic'| +//@[134:135) NewLine |\n| + policyDefinitionReferenceId: 'EventSystemTopicDeployDiagnosticLogDeployLogAnalytics' +//@[12:96) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:96) StringSyntax +//@[41:96) StringComplete |'EventSystemTopicDeployDiagnosticLogDeployLogAnalytics'| +//@[96:97) NewLine |\n| + parameters: { +//@[12:359) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:359) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:117) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:117) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'EventSystemTopicLogAnalyticsEffect\')]' +//@[16:77) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:77) StringSyntax +//@[23:77) StringComplete |'[parameters(\'EventSystemTopicLogAnalyticsEffect\')]'| +//@[77:78) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:599) ArrayItemSyntax +//@[10:599) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ExpressRoute' +//@[12:126) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:126) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:126) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ExpressRoute'| +//@[126:127) NewLine |\n| + policyDefinitionReferenceId: 'ExpressRouteDeployDiagnosticLogDeployLogAnalytics' +//@[12:92) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:92) StringSyntax +//@[41:92) StringComplete |'ExpressRouteDeployDiagnosticLogDeployLogAnalytics'| +//@[92:93) NewLine |\n| + parameters: { +//@[12:355) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:355) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:113) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:113) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'ExpressRouteLogAnalyticsEffect\')]' +//@[16:73) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:73) StringSyntax +//@[23:73) StringComplete |'[parameters(\'ExpressRouteLogAnalyticsEffect\')]'| +//@[73:74) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:587) ArrayItemSyntax +//@[10:587) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Firewall' +//@[12:122) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:122) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:122) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Firewall'| +//@[122:123) NewLine |\n| + policyDefinitionReferenceId: 'FirewallDeployDiagnosticLogDeployLogAnalytics' +//@[12:88) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:88) StringSyntax +//@[41:88) StringComplete |'FirewallDeployDiagnosticLogDeployLogAnalytics'| +//@[88:89) NewLine |\n| + parameters: { +//@[12:351) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:351) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:109) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:109) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'FirewallLogAnalyticsEffect\')]' +//@[16:69) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:69) StringSyntax +//@[23:69) StringComplete |'[parameters(\'FirewallLogAnalyticsEffect\')]'| +//@[69:70) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:590) ArrayItemSyntax +//@[10:590) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-FrontDoor' +//@[12:123) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:123) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:123) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-FrontDoor'| +//@[123:124) NewLine |\n| + policyDefinitionReferenceId: 'FrontDoorDeployDiagnosticLogDeployLogAnalytics' +//@[12:89) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:89) StringSyntax +//@[41:89) StringComplete |'FrontDoorDeployDiagnosticLogDeployLogAnalytics'| +//@[89:90) NewLine |\n| + parameters: { +//@[12:352) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:352) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:110) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:110) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'FrontDoorLogAnalyticsEffect\')]' +//@[16:70) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:70) StringSyntax +//@[23:70) StringComplete |'[parameters(\'FrontDoorLogAnalyticsEffect\')]'| +//@[70:71) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:593) ArrayItemSyntax +//@[10:593) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Function' +//@[12:122) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:122) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:122) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Function'| +//@[122:123) NewLine |\n| + policyDefinitionReferenceId: 'FunctionAppDeployDiagnosticLogDeployLogAnalytics' +//@[12:91) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:91) StringSyntax +//@[41:91) StringComplete |'FunctionAppDeployDiagnosticLogDeployLogAnalytics'| +//@[91:92) NewLine |\n| + parameters: { +//@[12:354) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:354) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:112) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:112) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'FunctionAppLogAnalyticsEffect\')]' +//@[16:72) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:72) StringSyntax +//@[23:72) StringComplete |'[parameters(\'FunctionAppLogAnalyticsEffect\')]'| +//@[72:73) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:590) ArrayItemSyntax +//@[10:590) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-HDInsight' +//@[12:123) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:123) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:123) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-HDInsight'| +//@[123:124) NewLine |\n| + policyDefinitionReferenceId: 'HDInsightDeployDiagnosticLogDeployLogAnalytics' +//@[12:89) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:89) StringSyntax +//@[41:89) StringComplete |'HDInsightDeployDiagnosticLogDeployLogAnalytics'| +//@[89:90) NewLine |\n| + parameters: { +//@[12:352) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:352) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:110) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:110) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'HDInsightLogAnalyticsEffect\')]' +//@[16:70) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:70) StringSyntax +//@[23:70) StringComplete |'[parameters(\'HDInsightLogAnalyticsEffect\')]'| +//@[70:71) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:581) ArrayItemSyntax +//@[10:581) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-iotHub' +//@[12:120) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:120) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:120) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-iotHub'| +//@[120:121) NewLine |\n| + policyDefinitionReferenceId: 'IotHubDeployDiagnosticLogDeployLogAnalytics' +//@[12:86) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:86) StringSyntax +//@[41:86) StringComplete |'IotHubDeployDiagnosticLogDeployLogAnalytics'| +//@[86:87) NewLine |\n| + parameters: { +//@[12:349) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:349) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:107) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:107) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'IotHubLogAnalyticsEffect\')]' +//@[16:67) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:67) StringSyntax +//@[23:67) StringComplete |'[parameters(\'IotHubLogAnalyticsEffect\')]'| +//@[67:68) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:587) ArrayItemSyntax +//@[10:587) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-KeyVault' +//@[12:122) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:122) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:122) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-KeyVault'| +//@[122:123) NewLine |\n| + policyDefinitionReferenceId: 'KeyVaultDeployDiagnosticLogDeployLogAnalytics' +//@[12:88) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:88) StringSyntax +//@[41:88) StringComplete |'KeyVaultDeployDiagnosticLogDeployLogAnalytics'| +//@[88:89) NewLine |\n| + parameters: { +//@[12:351) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:351) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:109) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:109) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'KeyVaultLogAnalyticsEffect\')]' +//@[16:69) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:69) StringSyntax +//@[23:69) StringComplete |'[parameters(\'KeyVaultLogAnalyticsEffect\')]'| +//@[69:70) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:599) ArrayItemSyntax +//@[10:599) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LoadBalancer' +//@[12:126) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:126) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:126) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LoadBalancer'| +//@[126:127) NewLine |\n| + policyDefinitionReferenceId: 'LoadBalancerDeployDiagnosticLogDeployLogAnalytics' +//@[12:92) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:92) StringSyntax +//@[41:92) StringComplete |'LoadBalancerDeployDiagnosticLogDeployLogAnalytics'| +//@[92:93) NewLine |\n| + parameters: { +//@[12:355) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:355) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:113) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:113) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'LoadBalancerLogAnalyticsEffect\')]' +//@[16:73) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:73) StringSyntax +//@[23:73) StringComplete |'[parameters(\'LoadBalancerLogAnalyticsEffect\')]'| +//@[73:74) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:599) ArrayItemSyntax +//@[10:599) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LogicAppsISE' +//@[12:126) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:126) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:126) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LogicAppsISE'| +//@[126:127) NewLine |\n| + policyDefinitionReferenceId: 'LogicAppsISEDeployDiagnosticLogDeployLogAnalytics' +//@[12:92) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:92) StringSyntax +//@[41:92) StringComplete |'LogicAppsISEDeployDiagnosticLogDeployLogAnalytics'| +//@[92:93) NewLine |\n| + parameters: { +//@[12:355) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:355) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:113) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:113) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'LogicAppsISELogAnalyticsEffect\')]' +//@[16:73) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:73) StringSyntax +//@[23:73) StringComplete |'[parameters(\'LogicAppsISELogAnalyticsEffect\')]'| +//@[73:74) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:596) ArrayItemSyntax +//@[10:596) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LogicAppsWF' +//@[12:125) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:125) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:125) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LogicAppsWF'| +//@[125:126) NewLine |\n| + policyDefinitionReferenceId: 'LogicAppsWFDeployDiagnosticLogDeployLogAnalytics' +//@[12:91) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:91) StringSyntax +//@[41:91) StringComplete |'LogicAppsWFDeployDiagnosticLogDeployLogAnalytics'| +//@[91:92) NewLine |\n| + parameters: { +//@[12:354) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:354) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:112) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:112) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'LogicAppsWFLogAnalyticsEffect\')]' +//@[16:72) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:72) StringSyntax +//@[23:72) StringComplete |'[parameters(\'LogicAppsWFLogAnalyticsEffect\')]'| +//@[72:73) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:584) ArrayItemSyntax +//@[10:584) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MariaDB' +//@[12:121) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:121) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:121) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MariaDB'| +//@[121:122) NewLine |\n| + policyDefinitionReferenceId: 'MariaDBDeployDiagnosticLogDeployLogAnalytics' +//@[12:87) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:87) StringSyntax +//@[41:87) StringComplete |'MariaDBDeployDiagnosticLogDeployLogAnalytics'| +//@[87:88) NewLine |\n| + parameters: { +//@[12:350) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:350) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:108) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:108) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'MariaDBLogAnalyticsEffect\')]' +//@[16:68) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:68) StringSyntax +//@[23:68) StringComplete |'[parameters(\'MariaDBLogAnalyticsEffect\')]'| +//@[68:69) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:596) ArrayItemSyntax +//@[10:596) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MlWorkspace' +//@[12:125) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:125) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:125) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MlWorkspace'| +//@[125:126) NewLine |\n| + policyDefinitionReferenceId: 'MlWorkspaceDeployDiagnosticLogDeployLogAnalytics' +//@[12:91) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:91) StringSyntax +//@[41:91) StringComplete |'MlWorkspaceDeployDiagnosticLogDeployLogAnalytics'| +//@[91:92) NewLine |\n| + parameters: { +//@[12:354) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:354) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:112) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:112) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'MlWorkspaceLogAnalyticsEffect\')]' +//@[16:72) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:72) StringSyntax +//@[23:72) StringComplete |'[parameters(\'MlWorkspaceLogAnalyticsEffect\')]'| +//@[72:73) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:578) ArrayItemSyntax +//@[10:578) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MySQL' +//@[12:119) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:119) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:119) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MySQL'| +//@[119:120) NewLine |\n| + policyDefinitionReferenceId: 'MySQLDeployDiagnosticLogDeployLogAnalytics' +//@[12:85) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:85) StringSyntax +//@[41:85) StringComplete |'MySQLDeployDiagnosticLogDeployLogAnalytics'| +//@[85:86) NewLine |\n| + parameters: { +//@[12:348) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:348) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:106) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:106) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'MySQLLogAnalyticsEffect\')]' +//@[16:66) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:66) StringSyntax +//@[23:66) StringComplete |'[parameters(\'MySQLLogAnalyticsEffect\')]'| +//@[66:67) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:626) ArrayItemSyntax +//@[10:626) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-NetworkSecurityGroups' +//@[12:135) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:135) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:135) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-NetworkSecurityGroups'| +//@[135:136) NewLine |\n| + policyDefinitionReferenceId: 'NetworkSecurityGroupsDeployDiagnosticLogDeployLogAnalytics' +//@[12:101) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:101) StringSyntax +//@[41:101) StringComplete |'NetworkSecurityGroupsDeployDiagnosticLogDeployLogAnalytics'| +//@[101:102) NewLine |\n| + parameters: { +//@[12:364) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:364) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:122) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:122) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'NetworkSecurityGroupsLogAnalyticsEffect\')]' +//@[16:82) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:82) StringSyntax +//@[23:82) StringComplete |'[parameters(\'NetworkSecurityGroupsLogAnalyticsEffect\')]'| +//@[82:83) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:586) ArrayItemSyntax +//@[10:586) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-NIC' +//@[12:117) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:117) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:117) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-NIC'| +//@[117:118) NewLine |\n| + policyDefinitionReferenceId: 'NetworkNICDeployDiagnosticLogDeployLogAnalytics' +//@[12:90) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:90) StringSyntax +//@[41:90) StringComplete |'NetworkNICDeployDiagnosticLogDeployLogAnalytics'| +//@[90:91) NewLine |\n| + parameters: { +//@[12:353) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:353) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:111) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:111) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'NetworkNICLogAnalyticsEffect\')]' +//@[16:71) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:71) StringSyntax +//@[23:71) StringComplete |'[parameters(\'NetworkNICLogAnalyticsEffect\')]'| +//@[71:72) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:593) ArrayItemSyntax +//@[10:593) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PostgreSQL' +//@[12:124) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:124) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:124) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PostgreSQL'| +//@[124:125) NewLine |\n| + policyDefinitionReferenceId: 'PostgreSQLDeployDiagnosticLogDeployLogAnalytics' +//@[12:90) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:90) StringSyntax +//@[41:90) StringComplete |'PostgreSQLDeployDiagnosticLogDeployLogAnalytics'| +//@[90:91) NewLine |\n| + parameters: { +//@[12:353) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:353) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:111) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:111) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'PostgreSQLLogAnalyticsEffect\')]' +//@[16:71) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:71) StringSyntax +//@[23:71) StringComplete |'[parameters(\'PostgreSQLLogAnalyticsEffect\')]'| +//@[71:72) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:608) ArrayItemSyntax +//@[10:608) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PowerBIEmbedded' +//@[12:129) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:129) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:129) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PowerBIEmbedded'| +//@[129:130) NewLine |\n| + policyDefinitionReferenceId: 'PowerBIEmbeddedDeployDiagnosticLogDeployLogAnalytics' +//@[12:95) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:95) StringSyntax +//@[41:95) StringComplete |'PowerBIEmbeddedDeployDiagnosticLogDeployLogAnalytics'| +//@[95:96) NewLine |\n| + parameters: { +//@[12:358) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:358) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:116) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:116) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'PowerBIEmbeddedLogAnalyticsEffect\')]' +//@[16:76) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:76) StringSyntax +//@[23:76) StringComplete |'[parameters(\'PowerBIEmbeddedLogAnalyticsEffect\')]'| +//@[76:77) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:607) ArrayItemSyntax +//@[10:607) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PublicIP' +//@[12:122) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:122) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:122) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PublicIP'| +//@[122:123) NewLine |\n| + policyDefinitionReferenceId: 'NetworkPublicIPNicDeployDiagnosticLogDeployLogAnalytics' +//@[12:98) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:98) StringSyntax +//@[41:98) StringComplete |'NetworkPublicIPNicDeployDiagnosticLogDeployLogAnalytics'| +//@[98:99) NewLine |\n| + parameters: { +//@[12:361) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:361) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:119) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:119) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'NetworkPublicIPNicLogAnalyticsEffect\')]' +//@[16:79) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:79) StringSyntax +//@[23:79) StringComplete |'[parameters(\'NetworkPublicIPNicLogAnalyticsEffect\')]'| +//@[79:80) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:602) ArrayItemSyntax +//@[10:602) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-RecoveryVault' +//@[12:127) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:127) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:127) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-RecoveryVault'| +//@[127:128) NewLine |\n| + policyDefinitionReferenceId: 'RecoveryVaultDeployDiagnosticLogDeployLogAnalytics' +//@[12:93) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:93) StringSyntax +//@[41:93) StringComplete |'RecoveryVaultDeployDiagnosticLogDeployLogAnalytics'| +//@[93:94) NewLine |\n| + parameters: { +//@[12:356) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:356) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:114) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:114) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'RecoveryVaultLogAnalyticsEffect\')]' +//@[16:74) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:74) StringSyntax +//@[23:74) StringComplete |'[parameters(\'RecoveryVaultLogAnalyticsEffect\')]'| +//@[74:75) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:593) ArrayItemSyntax +//@[10:593) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-RedisCache' +//@[12:124) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:124) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:124) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-RedisCache'| +//@[124:125) NewLine |\n| + policyDefinitionReferenceId: 'RedisCacheDeployDiagnosticLogDeployLogAnalytics' +//@[12:90) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:90) StringSyntax +//@[41:90) StringComplete |'RedisCacheDeployDiagnosticLogDeployLogAnalytics'| +//@[90:91) NewLine |\n| + parameters: { +//@[12:353) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:353) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:111) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:111) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'RedisCacheLogAnalyticsEffect\')]' +//@[16:71) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:71) StringSyntax +//@[23:71) StringComplete |'[parameters(\'RedisCacheLogAnalyticsEffect\')]'| +//@[71:72) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:578) ArrayItemSyntax +//@[10:578) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Relay' +//@[12:119) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:119) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:119) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Relay'| +//@[119:120) NewLine |\n| + policyDefinitionReferenceId: 'RelayDeployDiagnosticLogDeployLogAnalytics' +//@[12:85) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:85) StringSyntax +//@[41:85) StringComplete |'RelayDeployDiagnosticLogDeployLogAnalytics'| +//@[85:86) NewLine |\n| + parameters: { +//@[12:348) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:348) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:106) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:106) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'RelayLogAnalyticsEffect\')]' +//@[16:66) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:66) StringSyntax +//@[23:66) StringComplete |'[parameters(\'RelayLogAnalyticsEffect\')]'| +//@[66:67) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:605) ArrayItemSyntax +//@[10:605) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SearchServices' +//@[12:128) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:128) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:128) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SearchServices'| +//@[128:129) NewLine |\n| + policyDefinitionReferenceId: 'SearchServicesDeployDiagnosticLogDeployLogAnalytics' +//@[12:94) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:94) StringSyntax +//@[41:94) StringComplete |'SearchServicesDeployDiagnosticLogDeployLogAnalytics'| +//@[94:95) NewLine |\n| + parameters: { +//@[12:357) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:357) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:115) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:115) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'SearchServicesLogAnalyticsEffect\')]' +//@[16:75) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:75) StringSyntax +//@[23:75) StringComplete |'[parameters(\'SearchServicesLogAnalyticsEffect\')]'| +//@[75:76) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:593) ArrayItemSyntax +//@[10:593) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ServiceBus' +//@[12:124) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:124) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:124) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ServiceBus'| +//@[124:125) NewLine |\n| + policyDefinitionReferenceId: 'ServiceBusDeployDiagnosticLogDeployLogAnalytics' +//@[12:90) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:90) StringSyntax +//@[41:90) StringComplete |'ServiceBusDeployDiagnosticLogDeployLogAnalytics'| +//@[90:91) NewLine |\n| + parameters: { +//@[12:353) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:353) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:111) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:111) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'ServiceBusLogAnalyticsEffect\')]' +//@[16:71) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:71) StringSyntax +//@[23:71) StringComplete |'[parameters(\'ServiceBusLogAnalyticsEffect\')]'| +//@[71:72) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:584) ArrayItemSyntax +//@[10:584) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SignalR' +//@[12:121) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:121) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:121) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SignalR'| +//@[121:122) NewLine |\n| + policyDefinitionReferenceId: 'SignalRDeployDiagnosticLogDeployLogAnalytics' +//@[12:87) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:87) StringSyntax +//@[41:87) StringComplete |'SignalRDeployDiagnosticLogDeployLogAnalytics'| +//@[87:88) NewLine |\n| + parameters: { +//@[12:350) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:350) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:108) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:108) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'SignalRLogAnalyticsEffect\')]' +//@[16:68) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:68) StringSyntax +//@[23:68) StringComplete |'[parameters(\'SignalRLogAnalyticsEffect\')]'| +//@[68:69) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:581) ArrayItemSyntax +//@[10:581) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLDBs' +//@[12:120) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:120) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:120) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLDBs'| +//@[120:121) NewLine |\n| + policyDefinitionReferenceId: 'SQLDBsDeployDiagnosticLogDeployLogAnalytics' +//@[12:86) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:86) StringSyntax +//@[41:86) StringComplete |'SQLDBsDeployDiagnosticLogDeployLogAnalytics'| +//@[86:87) NewLine |\n| + parameters: { +//@[12:349) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:349) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:107) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:107) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'SQLDBsLogAnalyticsEffect\')]' +//@[16:67) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:67) StringSyntax +//@[23:67) StringComplete |'[parameters(\'SQLDBsLogAnalyticsEffect\')]'| +//@[67:68) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:608) ArrayItemSyntax +//@[10:608) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLElasticPools' +//@[12:129) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:129) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:129) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLElasticPools'| +//@[129:130) NewLine |\n| + policyDefinitionReferenceId: 'SQLElasticPoolsDeployDiagnosticLogDeployLogAnalytics' +//@[12:95) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:95) StringSyntax +//@[41:95) StringComplete |'SQLElasticPoolsDeployDiagnosticLogDeployLogAnalytics'| +//@[95:96) NewLine |\n| + parameters: { +//@[12:358) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:358) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:116) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:116) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'SQLElasticPoolsLogAnalyticsEffect\')]' +//@[16:76) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:76) StringSyntax +//@[23:76) StringComplete |'[parameters(\'SQLElasticPoolsLogAnalyticsEffect\')]'| +//@[76:77) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:576) ArrayItemSyntax +//@[10:576) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLMI' +//@[12:119) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:119) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:119) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLMI'| +//@[119:120) NewLine |\n| + policyDefinitionReferenceId: 'SQLMDeployDiagnosticLogDeployLogAnalytics' +//@[12:84) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:84) StringSyntax +//@[41:84) StringComplete |'SQLMDeployDiagnosticLogDeployLogAnalytics'| +//@[84:85) NewLine |\n| + parameters: { +//@[12:347) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:347) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:105) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:105) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'SQLMLogAnalyticsEffect\')]' +//@[16:65) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:65) StringSyntax +//@[23:65) StringComplete |'[parameters(\'SQLMLogAnalyticsEffect\')]'| +//@[65:66) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:608) ArrayItemSyntax +//@[10:608) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-StreamAnalytics' +//@[12:129) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:129) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:129) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-StreamAnalytics'| +//@[129:130) NewLine |\n| + policyDefinitionReferenceId: 'StreamAnalyticsDeployDiagnosticLogDeployLogAnalytics' +//@[12:95) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:95) StringSyntax +//@[41:95) StringComplete |'StreamAnalyticsDeployDiagnosticLogDeployLogAnalytics'| +//@[95:96) NewLine |\n| + parameters: { +//@[12:358) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:358) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:116) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:116) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'StreamAnalyticsLogAnalyticsEffect\')]' +//@[16:76) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:76) StringSyntax +//@[23:76) StringComplete |'[parameters(\'StreamAnalyticsLogAnalyticsEffect\')]'| +//@[76:77) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:617) ArrayItemSyntax +//@[10:617) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-TimeSeriesInsights' +//@[12:132) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:132) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:132) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-TimeSeriesInsights'| +//@[132:133) NewLine |\n| + policyDefinitionReferenceId: 'TimeSeriesInsightsDeployDiagnosticLogDeployLogAnalytics' +//@[12:98) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:98) StringSyntax +//@[41:98) StringComplete |'TimeSeriesInsightsDeployDiagnosticLogDeployLogAnalytics'| +//@[98:99) NewLine |\n| + parameters: { +//@[12:361) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:361) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:119) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:119) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'TimeSeriesInsightsLogAnalyticsEffect\')]' +//@[16:79) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:79) StringSyntax +//@[23:79) StringComplete |'[parameters(\'TimeSeriesInsightsLogAnalyticsEffect\')]'| +//@[79:80) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:605) ArrayItemSyntax +//@[10:605) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-TrafficManager' +//@[12:128) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:128) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:128) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-TrafficManager'| +//@[128:129) NewLine |\n| + policyDefinitionReferenceId: 'TrafficManagerDeployDiagnosticLogDeployLogAnalytics' +//@[12:94) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:94) StringSyntax +//@[41:94) StringComplete |'TrafficManagerDeployDiagnosticLogDeployLogAnalytics'| +//@[94:95) NewLine |\n| + parameters: { +//@[12:357) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:357) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:115) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:115) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'TrafficManagerLogAnalyticsEffect\')]' +//@[16:75) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:75) StringSyntax +//@[23:75) StringComplete |'[parameters(\'TrafficManagerLogAnalyticsEffect\')]'| +//@[75:76) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:605) ArrayItemSyntax +//@[10:605) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VirtualNetwork' +//@[12:128) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:128) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:128) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VirtualNetwork'| +//@[128:129) NewLine |\n| + policyDefinitionReferenceId: 'VirtualNetworkDeployDiagnosticLogDeployLogAnalytics' +//@[12:94) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:94) StringSyntax +//@[41:94) StringComplete |'VirtualNetworkDeployDiagnosticLogDeployLogAnalytics'| +//@[94:95) NewLine |\n| + parameters: { +//@[12:357) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:357) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:115) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:115) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'VirtualNetworkLogAnalyticsEffect\')]' +//@[16:75) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:75) StringSyntax +//@[23:75) StringComplete |'[parameters(\'VirtualNetworkLogAnalyticsEffect\')]'| +//@[75:76) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:595) ArrayItemSyntax +//@[10:595) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VM' +//@[12:116) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:116) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:116) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VM'| +//@[116:117) NewLine |\n| + policyDefinitionReferenceId: 'VirtualMachinesDeployDiagnosticLogDeployLogAnalytics' +//@[12:95) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:95) StringSyntax +//@[41:95) StringComplete |'VirtualMachinesDeployDiagnosticLogDeployLogAnalytics'| +//@[95:96) NewLine |\n| + parameters: { +//@[12:358) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:358) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:116) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:116) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'VirtualMachinesLogAnalyticsEffect\')]' +//@[16:76) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:76) StringSyntax +//@[23:76) StringComplete |'[parameters(\'VirtualMachinesLogAnalyticsEffect\')]'| +//@[76:77) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:575) ArrayItemSyntax +//@[10:575) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VMSS' +//@[12:118) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:118) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:118) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VMSS'| +//@[118:119) NewLine |\n| + policyDefinitionReferenceId: 'VMSSDeployDiagnosticLogDeployLogAnalytics' +//@[12:84) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:84) StringSyntax +//@[41:84) StringComplete |'VMSSDeployDiagnosticLogDeployLogAnalytics'| +//@[84:85) NewLine |\n| + parameters: { +//@[12:347) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:347) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:105) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:105) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'VMSSLogAnalyticsEffect\')]' +//@[16:65) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:65) StringSyntax +//@[23:65) StringComplete |'[parameters(\'VMSSLogAnalyticsEffect\')]'| +//@[65:66) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:581) ArrayItemSyntax +//@[10:581) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VNetGW' +//@[12:120) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:120) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:120) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VNetGW'| +//@[120:121) NewLine |\n| + policyDefinitionReferenceId: 'VNetGWDeployDiagnosticLogDeployLogAnalytics' +//@[12:86) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:86) StringSyntax +//@[41:86) StringComplete |'VNetGWDeployDiagnosticLogDeployLogAnalytics'| +//@[86:87) NewLine |\n| + parameters: { +//@[12:349) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:349) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:107) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:107) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'VNetGWLogAnalyticsEffect\')]' +//@[16:67) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:67) StringSyntax +//@[23:67) StringComplete |'[parameters(\'VNetGWLogAnalyticsEffect\')]'| +//@[67:68) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:596) ArrayItemSyntax +//@[10:596) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-WebServerFarm' +//@[12:127) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:127) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:127) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-WebServerFarm'| +//@[127:128) NewLine |\n| + policyDefinitionReferenceId: 'AppServiceDeployDiagnosticLogDeployLogAnalytics' +//@[12:90) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:90) StringSyntax +//@[41:90) StringComplete |'AppServiceDeployDiagnosticLogDeployLogAnalytics'| +//@[90:91) NewLine |\n| + parameters: { +//@[12:353) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:353) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:111) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:111) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'AppServiceLogAnalyticsEffect\')]' +//@[16:71) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:71) StringSyntax +//@[23:71) StringComplete |'[parameters(\'AppServiceLogAnalyticsEffect\')]'| +//@[71:72) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:602) ArrayItemSyntax +//@[10:602) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Website' +//@[12:121) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:121) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:121) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Website'| +//@[121:122) NewLine |\n| + policyDefinitionReferenceId: 'AppServiceWebappDeployDiagnosticLogDeployLogAnalytics' +//@[12:96) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:96) StringSyntax +//@[41:96) StringComplete |'AppServiceWebappDeployDiagnosticLogDeployLogAnalytics'| +//@[96:97) NewLine |\n| + parameters: { +//@[12:359) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:359) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:101) ObjectPropertySyntax +//@[14:26) IdentifierSyntax +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:101) ObjectSyntax +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:55) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringSyntax +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:117) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:117) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'AppServiceWebappLogAnalyticsEffect\')]' +//@[16:77) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:77) StringSyntax +//@[23:77) StringComplete |'[parameters(\'AppServiceWebappLogAnalyticsEffect\')]'| +//@[77:78) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:99) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:99) ObjectSyntax +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:54) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringSyntax +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + ] +//@[8:9) RightSquare |]| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + type: null +//@[6:16) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |type| +//@[10:11) Colon |:| +//@[12:16) NullLiteralSyntax +//@[12:16) NullKeyword |null| +//@[16:17) NewLine |\n| + name: 'Deploy-Diag-LogAnalytics' +//@[6:38) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:38) StringSyntax +//@[12:38) StringComplete |'Deploy-Diag-LogAnalytics'| +//@[38:39) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:7203) ArrayItemSyntax +//@[4:7203) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:7139) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:7139) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies creation of Azure PAAS services with exposed public endpoints. This policy set includes the policy for the following services KeyVault, Storage accounts, AKS, Cosmos, SQL Servers, MariaDB, MySQL and Postgress. ' +//@[8:253) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:253) StringSyntax +//@[21:253) StringComplete |'This policy denies creation of Azure PAAS services with exposed public endpoints. This policy set includes the policy for the following services KeyVault, Storage accounts, AKS, Cosmos, SQL Servers, MariaDB, MySQL and Postgress. '| +//@[253:254) NewLine |\n| + DisplayName: 'Public network access should be disabled for PAAS services' +//@[8:81) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:81) StringSyntax +//@[21:81) StringComplete |'Public network access should be disabled for PAAS services'| +//@[81:82) NewLine |\n| + Parameters: { +//@[8:3715) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:3715) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + CosmosPublicIpDenyEffect: { +//@[10:477) ObjectPropertySyntax +//@[10:34) IdentifierSyntax +//@[10:34) Identifier |CosmosPublicIpDenyEffect| +//@[34:35) Colon |:| +//@[36:477) ObjectSyntax +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'Deny' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:110) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:110) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:256) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:256) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Public network access should be disabled for CosmosDB' +//@[14:82) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Public network access should be disabled for CosmosDB'| +//@[82:83) NewLine |\n| + description: 'This policy denies that Cosmos database accounts are created with out public network access is disabled.' +//@[14:135) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:135) StringSyntax +//@[27:135) StringComplete |'This policy denies that Cosmos database accounts are created with out public network access is disabled.'| +//@[135:136) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + MariaDBPublicIpDenyEffect: { +//@[10:453) ObjectPropertySyntax +//@[10:35) IdentifierSyntax +//@[10:35) Identifier |MariaDBPublicIpDenyEffect| +//@[35:36) Colon |:| +//@[37:453) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'Deny' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:110) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:110) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:231) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:231) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Public network access should be disabled for MariaDB' +//@[14:81) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:81) StringSyntax +//@[27:81) StringComplete |'Public network access should be disabled for MariaDB'| +//@[81:82) NewLine |\n| + description: 'This policy denies the creation of Maria DB accounts with exposed public endpoints' +//@[14:111) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:111) StringSyntax +//@[27:111) StringComplete |'This policy denies the creation of Maria DB accounts with exposed public endpoints'| +//@[111:112) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + MySQLPublicIpDenyEffect: { +//@[10:445) ObjectPropertySyntax +//@[10:33) IdentifierSyntax +//@[10:33) Identifier |MySQLPublicIpDenyEffect| +//@[33:34) Colon |:| +//@[35:445) ObjectSyntax +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'Deny' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:110) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:110) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:225) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:225) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Public network access should be disabled for MySQL' +//@[14:79) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:79) StringSyntax +//@[27:79) StringComplete |'Public network access should be disabled for MySQL'| +//@[79:80) NewLine |\n| + description: 'This policy denies creation of MySql DB accounts with exposed public endpoints' +//@[14:107) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:107) StringSyntax +//@[27:107) StringComplete |'This policy denies creation of MySql DB accounts with exposed public endpoints'| +//@[107:108) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + PostgreSQLPublicIpDenyEffect: { +//@[10:461) ObjectPropertySyntax +//@[10:38) IdentifierSyntax +//@[10:38) Identifier |PostgreSQLPublicIpDenyEffect| +//@[38:39) Colon |:| +//@[40:461) ObjectSyntax +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'Deny' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:110) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:110) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:236) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:236) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Public network access should be disabled for PostgreSql' +//@[14:84) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:84) StringSyntax +//@[27:84) StringComplete |'Public network access should be disabled for PostgreSql'| +//@[84:85) NewLine |\n| + description: 'This policy denies creation of Postgre SQL DB accounts with exposed public endpoints' +//@[14:113) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:113) StringSyntax +//@[27:113) StringComplete |'This policy denies creation of Postgre SQL DB accounts with exposed public endpoints'| +//@[113:114) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + KeyVaultPublicIpDenyEffect: { +//@[10:463) ObjectPropertySyntax +//@[10:36) IdentifierSyntax +//@[10:36) Identifier |KeyVaultPublicIpDenyEffect| +//@[36:37) Colon |:| +//@[38:463) ObjectSyntax +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'Deny' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:110) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:110) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:240) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:240) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Public network access should be disabled for KeyVault' +//@[14:82) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:82) StringSyntax +//@[27:82) StringComplete |'Public network access should be disabled for KeyVault'| +//@[82:83) NewLine |\n| + description: 'This policy denies creation of Key Vaults with IP Firewall exposed to all public endpoints' +//@[14:119) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:119) StringSyntax +//@[27:119) StringComplete |'This policy denies creation of Key Vaults with IP Firewall exposed to all public endpoints'| +//@[119:120) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + SqlServerPublicIpDenyEffect: { +//@[10:455) ObjectPropertySyntax +//@[10:37) IdentifierSyntax +//@[10:37) Identifier |SqlServerPublicIpDenyEffect| +//@[37:38) Colon |:| +//@[39:455) ObjectSyntax +//@[39:40) LeftBrace |{| +//@[40:41) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'Deny' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:110) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:110) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:231) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:231) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Public network access on Azure SQL Database should be disabled' +//@[14:91) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:91) StringSyntax +//@[27:91) StringComplete |'Public network access on Azure SQL Database should be disabled'| +//@[91:92) NewLine |\n| + description: 'This policy denies creation of Sql servers with exposed public endpoints' +//@[14:101) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:101) StringSyntax +//@[27:101) StringComplete |'This policy denies creation of Sql servers with exposed public endpoints'| +//@[101:102) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + StoragePublicIpDenyEffect: { +//@[10:474) ObjectPropertySyntax +//@[10:35) IdentifierSyntax +//@[10:35) Identifier |StoragePublicIpDenyEffect| +//@[35:36) Colon |:| +//@[37:474) ObjectSyntax +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'Deny' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:110) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:110) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:252) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:252) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Public network access onStorage accounts should be disabled' +//@[14:88) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:88) StringSyntax +//@[27:88) StringComplete |'Public network access onStorage accounts should be disabled'| +//@[88:89) NewLine |\n| + description: 'This policy denies creation of storage accounts with IP Firewall exposed to all public endpoints' +//@[14:125) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:125) StringSyntax +//@[27:125) StringComplete |'This policy denies creation of storage accounts with IP Firewall exposed to all public endpoints'| +//@[125:126) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + AKSPublicIpDenyEffect: { +//@[10:448) ObjectPropertySyntax +//@[10:31) IdentifierSyntax +//@[10:31) Identifier |AKSPublicIpDenyEffect| +//@[31:32) Colon |:| +//@[33:448) ObjectSyntax +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'Deny' +//@[12:32) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringSyntax +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:110) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:110) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) ArrayItemSyntax +//@[14:21) StringSyntax +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) ArrayItemSyntax +//@[14:20) StringSyntax +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:230) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:230) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Public network access on AKS API should be disabled' +//@[14:80) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:80) StringSyntax +//@[27:80) StringComplete |'Public network access on AKS API should be disabled'| +//@[80:81) NewLine |\n| + description: 'This policy denies the creation of Azure Kubernetes Service non-private clusters' +//@[14:111) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:111) StringSyntax +//@[27:111) StringComplete |'This policy denies the creation of Azure Kubernetes Service non-private clusters'| +//@[111:112) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyDefinitionGroups: null +//@[8:36) ObjectPropertySyntax +//@[8:30) IdentifierSyntax +//@[8:30) Identifier |PolicyDefinitionGroups| +//@[30:31) Colon |:| +//@[32:36) NullLiteralSyntax +//@[32:36) NullKeyword |null| +//@[36:37) NewLine |\n| + metadata: { +//@[8:86) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:86) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:29) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringSyntax +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyDefinitions: [ +//@[8:2935) ObjectPropertySyntax +//@[8:25) IdentifierSyntax +//@[8:25) Identifier |PolicyDefinitions| +//@[25:26) Colon |:| +//@[27:2935) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + { +//@[10:361) ArrayItemSyntax +//@[10:361) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-CosmosDB' +//@[12:123) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:123) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:123) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-CosmosDB'| +//@[123:124) NewLine |\n| + policyDefinitionReferenceId: 'CosmosDenyPaasPublicIP' +//@[12:65) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:65) StringSyntax +//@[41:65) StringComplete |'CosmosDenyPaasPublicIP'| +//@[65:66) NewLine |\n| + parameters: { +//@[12:147) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:147) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + effect: { +//@[14:107) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:107) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'CosmosPublicIpDenyEffect\')]' +//@[16:67) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:67) StringSyntax +//@[23:67) StringComplete |'[parameters(\'CosmosPublicIpDenyEffect\')]'| +//@[67:68) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:362) ArrayItemSyntax +//@[10:362) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-MariaDB' +//@[12:122) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:122) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:122) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-MariaDB'| +//@[122:123) NewLine |\n| + policyDefinitionReferenceId: 'MariaDBDenyPaasPublicIP' +//@[12:66) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:66) StringSyntax +//@[41:66) StringComplete |'MariaDBDenyPaasPublicIP'| +//@[66:67) NewLine |\n| + parameters: { +//@[12:148) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:148) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + effect: { +//@[14:108) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:108) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'MariaDBPublicIpDenyEffect\')]' +//@[16:68) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:68) StringSyntax +//@[23:68) StringComplete |'[parameters(\'MariaDBPublicIpDenyEffect\')]'| +//@[68:69) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:356) ArrayItemSyntax +//@[10:356) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-MySQL' +//@[12:120) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:120) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:120) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-MySQL'| +//@[120:121) NewLine |\n| + policyDefinitionReferenceId: 'MySQLDenyPaasPublicIP' +//@[12:64) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:64) StringSyntax +//@[41:64) StringComplete |'MySQLDenyPaasPublicIP'| +//@[64:65) NewLine |\n| + parameters: { +//@[12:146) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:146) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + effect: { +//@[14:106) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:106) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'MySQLPublicIpDenyEffect\')]' +//@[16:66) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:66) StringSyntax +//@[23:66) StringComplete |'[parameters(\'MySQLPublicIpDenyEffect\')]'| +//@[66:67) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:371) ArrayItemSyntax +//@[10:371) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-PostgreSql' +//@[12:125) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:125) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:125) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-PostgreSql'| +//@[125:126) NewLine |\n| + policyDefinitionReferenceId: 'PostgreSQLDenyPaasPublicIP' +//@[12:69) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:69) StringSyntax +//@[41:69) StringComplete |'PostgreSQLDenyPaasPublicIP'| +//@[69:70) NewLine |\n| + parameters: { +//@[12:151) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:151) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + effect: { +//@[14:111) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:111) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'PostgreSQLPublicIpDenyEffect\')]' +//@[16:71) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:71) StringSyntax +//@[23:71) StringComplete |'[parameters(\'PostgreSQLPublicIpDenyEffect\')]'| +//@[71:72) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:365) ArrayItemSyntax +//@[10:365) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-KeyVault' +//@[12:123) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:123) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:123) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-KeyVault'| +//@[123:124) NewLine |\n| + policyDefinitionReferenceId: 'KeyVaultDenyPaasPublicIP' +//@[12:67) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:67) StringSyntax +//@[41:67) StringComplete |'KeyVaultDenyPaasPublicIP'| +//@[67:68) NewLine |\n| + parameters: { +//@[12:149) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:149) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + effect: { +//@[14:109) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:109) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'KeyVaultPublicIpDenyEffect\')]' +//@[16:69) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:69) StringSyntax +//@[23:69) StringComplete |'[parameters(\'KeyVaultPublicIpDenyEffect\')]'| +//@[69:70) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:362) ArrayItemSyntax +//@[10:362) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Sql' +//@[12:118) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:118) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:118) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Sql'| +//@[118:119) NewLine |\n| + policyDefinitionReferenceId: 'SqlServerDenyPaasPublicIP' +//@[12:68) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:68) StringSyntax +//@[41:68) StringComplete |'SqlServerDenyPaasPublicIP'| +//@[68:69) NewLine |\n| + parameters: { +//@[12:150) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:150) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + effect: { +//@[14:110) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:110) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'SqlServerPublicIpDenyEffect\')]' +//@[16:70) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:70) StringSyntax +//@[23:70) StringComplete |'[parameters(\'SqlServerPublicIpDenyEffect\')]'| +//@[70:71) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:362) ArrayItemSyntax +//@[10:362) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Storage' +//@[12:122) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:122) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:122) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Storage'| +//@[122:123) NewLine |\n| + policyDefinitionReferenceId: 'StorageDenyPaasPublicIP' +//@[12:66) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:66) StringSyntax +//@[41:66) StringComplete |'StorageDenyPaasPublicIP'| +//@[66:67) NewLine |\n| + parameters: { +//@[12:148) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:148) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + effect: { +//@[14:108) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:108) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'StoragePublicIpDenyEffect\')]' +//@[16:68) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:68) StringSyntax +//@[23:68) StringComplete |'[parameters(\'StoragePublicIpDenyEffect\')]'| +//@[68:69) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:350) ArrayItemSyntax +//@[10:350) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Aks' +//@[12:118) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:118) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:118) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Aks'| +//@[118:119) NewLine |\n| + policyDefinitionReferenceId: 'AKSDenyPaasPublicIP' +//@[12:62) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:62) StringSyntax +//@[41:62) StringComplete |'AKSDenyPaasPublicIP'| +//@[62:63) NewLine |\n| + parameters: { +//@[12:144) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:144) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + effect: { +//@[14:104) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:104) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'AKSPublicIpDenyEffect\')]' +//@[16:64) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:64) StringSyntax +//@[23:64) StringComplete |'[parameters(\'AKSPublicIpDenyEffect\')]'| +//@[64:65) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + ] +//@[8:9) RightSquare |]| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + type: null +//@[6:16) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |type| +//@[10:11) Colon |:| +//@[12:16) NullLiteralSyntax +//@[12:16) NullKeyword |null| +//@[16:17) NewLine |\n| + name: 'Deny-PublicEndpoints' +//@[6:34) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:34) StringSyntax +//@[12:34) StringComplete |'Deny-PublicEndpoints'| +//@[34:35) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:4858) ArrayItemSyntax +//@[4:4858) ObjectSyntax +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:4795) ObjectPropertySyntax +//@[6:16) IdentifierSyntax +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:4795) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploy auditing, Alert, TDE and SQL vulnerability to SQL Databases when it not exist in the deployment' +//@[8:125) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:125) StringSyntax +//@[21:125) StringComplete |'Deploy auditing, Alert, TDE and SQL vulnerability to SQL Databases when it not exist in the deployment'| +//@[125:126) NewLine |\n| + DisplayName: 'Deploy SQL Database built-in SQL security configuration' +//@[8:78) ObjectPropertySyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:78) StringSyntax +//@[21:78) StringComplete |'Deploy SQL Database built-in SQL security configuration'| +//@[78:79) NewLine |\n| + Parameters: { +//@[8:2535) ObjectPropertySyntax +//@[8:18) IdentifierSyntax +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:2535) ObjectSyntax +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + vulnerabilityAssessmentsEmail: { +//@[10:243) ObjectPropertySyntax +//@[10:39) IdentifierSyntax +//@[10:39) Identifier |vulnerabilityAssessmentsEmail| +//@[39:40) Colon |:| +//@[41:243) ObjectSyntax +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + metadata: { +//@[12:161) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:161) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + description: 'The email address to send alerts' +//@[14:61) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:61) StringSyntax +//@[27:61) StringComplete |'The email address to send alerts'| +//@[61:62) NewLine |\n| + displayName: 'The email address to send alerts' +//@[14:61) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:61) StringSyntax +//@[27:61) StringComplete |'The email address to send alerts'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + vulnerabilityAssessmentsStorageID: { +//@[10:269) ObjectPropertySyntax +//@[10:43) IdentifierSyntax +//@[10:43) Identifier |vulnerabilityAssessmentsStorageID| +//@[43:44) Colon |:| +//@[45:269) ObjectSyntax +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + metadata: { +//@[12:183) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:183) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + description: 'The storage account ID to store assessments' +//@[14:72) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:72) StringSyntax +//@[27:72) StringComplete |'The storage account ID to store assessments'| +//@[72:73) NewLine |\n| + displayName: 'The storage account ID to store assessments' +//@[14:72) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:72) StringSyntax +//@[27:72) StringComplete |'The storage account ID to store assessments'| +//@[72:73) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + type: 'String' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + SqlDbTdeDeploySqlSecurityEffect: { +//@[10:456) ObjectPropertySyntax +//@[10:41) IdentifierSyntax +//@[10:41) Identifier |SqlDbTdeDeploySqlSecurityEffect| +//@[41:42) Colon |:| +//@[43:456) ObjectSyntax +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:224) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:224) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy SQL Database Transparent Data Encryption ' +//@[14:77) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:77) StringSyntax +//@[27:77) StringComplete |'Deploy SQL Database Transparent Data Encryption '| +//@[77:78) NewLine |\n| + description: 'Deploy the Transparent Data Encryption when it is not enabled in the deployment' +//@[14:108) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringSyntax +//@[27:108) StringComplete |'Deploy the Transparent Data Encryption when it is not enabled in the deployment'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + SqlDbSecurityAlertPoliciesDeploySqlSecurityEffect: { +//@[10:547) ObjectPropertySyntax +//@[10:59) IdentifierSyntax +//@[10:59) Identifier |SqlDbSecurityAlertPoliciesDeploySqlSecurityEffect| +//@[59:60) Colon |:| +//@[61:547) ObjectSyntax +//@[61:62) LeftBrace |{| +//@[62:63) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:297) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:297) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy SQL Database security Alert Policies configuration with email admin accounts' +//@[14:112) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:112) StringSyntax +//@[27:112) StringComplete |'Deploy SQL Database security Alert Policies configuration with email admin accounts'| +//@[112:113) NewLine |\n| + description: 'Deploy the security Alert Policies configuration with email admin accounts when it not exist in current configuration' +//@[14:146) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:146) StringSyntax +//@[27:146) StringComplete |'Deploy the security Alert Policies configuration with email admin accounts when it not exist in current configuration'| +//@[146:147) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + SqlDbAuditingSettingsDeploySqlSecurityEffect: { +//@[10:455) ObjectPropertySyntax +//@[10:54) IdentifierSyntax +//@[10:54) Identifier |SqlDbAuditingSettingsDeploySqlSecurityEffect| +//@[54:55) Colon |:| +//@[56:455) ObjectSyntax +//@[56:57) LeftBrace |{| +//@[57:58) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:210) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:210) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy SQL database auditing settings' +//@[14:66) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:66) StringSyntax +//@[27:66) StringComplete |'Deploy SQL database auditing settings'| +//@[66:67) NewLine |\n| + description: 'Deploy auditing settings to SQL Database when it not exist in the deployment' +//@[14:105) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringSyntax +//@[27:105) StringComplete |'Deploy auditing settings to SQL Database when it not exist in the deployment'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + SqlDbVulnerabilityAssessmentsDeploySqlSecurityEffect: { +//@[10:528) ObjectPropertySyntax +//@[10:62) IdentifierSyntax +//@[10:62) Identifier |SqlDbVulnerabilityAssessmentsDeploySqlSecurityEffect| +//@[62:63) Colon |:| +//@[64:528) ObjectSyntax +//@[64:65) LeftBrace |{| +//@[65:66) NewLine |\n| + type: 'string' +//@[12:26) ObjectPropertySyntax +//@[12:16) IdentifierSyntax +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringSyntax +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:45) ObjectPropertySyntax +//@[12:24) IdentifierSyntax +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringSyntax +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:101) ObjectPropertySyntax +//@[12:25) IdentifierSyntax +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:101) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) ArrayItemSyntax +//@[14:33) StringSyntax +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) ArrayItemSyntax +//@[14:24) StringSyntax +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:275) ObjectPropertySyntax +//@[12:20) IdentifierSyntax +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:275) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy SQL Database vulnerability Assessments' +//@[14:74) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:74) StringSyntax +//@[27:74) StringComplete |'Deploy SQL Database vulnerability Assessments'| +//@[74:75) NewLine |\n| + description: 'Deploy SQL Database vulnerability Assessments when it not exist in the deployment. To the specific storage account in the parameters' +//@[14:162) ObjectPropertySyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:162) StringSyntax +//@[27:162) StringComplete |'Deploy SQL Database vulnerability Assessments when it not exist in the deployment. To the specific storage account in the parameters'| +//@[162:163) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyDefinitionGroups: null +//@[8:36) ObjectPropertySyntax +//@[8:30) IdentifierSyntax +//@[8:30) Identifier |PolicyDefinitionGroups| +//@[30:31) Colon |:| +//@[32:36) NullLiteralSyntax +//@[32:36) NullKeyword |null| +//@[36:37) NewLine |\n| + metadata: { +//@[8:82) ObjectPropertySyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:82) ObjectSyntax +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:26) ObjectPropertySyntax +//@[10:17) IdentifierSyntax +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringSyntax +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'SQL' +//@[10:25) ObjectPropertySyntax +//@[10:18) IdentifierSyntax +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:25) StringSyntax +//@[20:25) StringComplete |'SQL'| +//@[25:26) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyDefinitions: [ +//@[8:1906) ObjectPropertySyntax +//@[8:25) IdentifierSyntax +//@[8:25) Identifier |PolicyDefinitions| +//@[25:26) Colon |:| +//@[27:1906) ArraySyntax +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + { +//@[10:357) ArrayItemSyntax +//@[10:357) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-Tde' +//@[12:109) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:109) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:109) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-Tde'| +//@[109:110) NewLine |\n| + policyDefinitionReferenceId: 'SqlDbTdeDeploySqlSecurity' +//@[12:68) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:68) StringSyntax +//@[41:68) StringComplete |'SqlDbTdeDeploySqlSecurity'| +//@[68:69) NewLine |\n| + parameters: { +//@[12:154) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:154) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + effect: { +//@[14:114) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:114) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'SqlDbTdeDeploySqlSecurityEffect\')]' +//@[16:74) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:74) StringSyntax +//@[23:74) StringComplete |'[parameters(\'SqlDbTdeDeploySqlSecurityEffect\')]'| +//@[74:75) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:411) ArrayItemSyntax +//@[10:411) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-SecurityAlertPolicies' +//@[12:127) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:127) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:127) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-SecurityAlertPolicies'| +//@[127:128) NewLine |\n| + policyDefinitionReferenceId: 'SqlDbSecurityAlertPoliciesDeploySqlSecurity' +//@[12:86) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:86) StringSyntax +//@[41:86) StringComplete |'SqlDbSecurityAlertPoliciesDeploySqlSecurity'| +//@[86:87) NewLine |\n| + parameters: { +//@[12:172) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:172) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + effect: { +//@[14:132) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:132) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'SqlDbSecurityAlertPoliciesDeploySqlSecurityEffect\')]' +//@[16:92) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:92) StringSyntax +//@[23:92) StringComplete |'[parameters(\'SqlDbSecurityAlertPoliciesDeploySqlSecurityEffect\')]'| +//@[92:93) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:396) ArrayItemSyntax +//@[10:396) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-AuditingSettings' +//@[12:122) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:122) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:122) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-AuditingSettings'| +//@[122:123) NewLine |\n| + policyDefinitionReferenceId: 'SqlDbAuditingSettingsDeploySqlSecurity' +//@[12:81) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:81) StringSyntax +//@[41:81) StringComplete |'SqlDbAuditingSettingsDeploySqlSecurity'| +//@[81:82) NewLine |\n| + parameters: { +//@[12:167) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:167) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + effect: { +//@[14:127) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:127) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'SqlDbAuditingSettingsDeploySqlSecurityEffect\')]' +//@[16:87) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:87) StringSyntax +//@[23:87) StringComplete |'[parameters(\'SqlDbAuditingSettingsDeploySqlSecurityEffect\')]'| +//@[87:88) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:700) ArrayItemSyntax +//@[10:700) ObjectSyntax +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-vulnerabilityAssessments' +//@[12:130) ObjectPropertySyntax +//@[12:30) IdentifierSyntax +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:130) StringSyntax +//@[32:35) StringLeftPiece |'${| +//@[35:40) VariableAccessSyntax +//@[35:40) IdentifierSyntax +//@[35:40) Identifier |scope| +//@[40:130) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-vulnerabilityAssessments'| +//@[130:131) NewLine |\n| + policyDefinitionReferenceId: 'SqlDbVulnerabilityAssessmentsDeploySqlSecurity' +//@[12:89) ObjectPropertySyntax +//@[12:39) IdentifierSyntax +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:89) StringSyntax +//@[41:89) StringComplete |'SqlDbVulnerabilityAssessmentsDeploySqlSecurity'| +//@[89:90) NewLine |\n| + parameters: { +//@[12:455) ObjectPropertySyntax +//@[12:22) IdentifierSyntax +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:455) ObjectSyntax +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + effect: { +//@[14:135) ObjectPropertySyntax +//@[14:20) IdentifierSyntax +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:135) ObjectSyntax +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'SqlDbVulnerabilityAssessmentsDeploySqlSecurityEffect\')]' +//@[16:95) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:95) StringSyntax +//@[23:95) StringComplete |'[parameters(\'SqlDbVulnerabilityAssessmentsDeploySqlSecurityEffect\')]'| +//@[95:96) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + vulnerabilityAssessmentsEmail: { +//@[14:135) ObjectPropertySyntax +//@[14:43) IdentifierSyntax +//@[14:43) Identifier |vulnerabilityAssessmentsEmail| +//@[43:44) Colon |:| +//@[45:135) ObjectSyntax +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + value: '[parameters(\'vulnerabilityAssessmentsEmail\')]' +//@[16:72) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:72) StringSyntax +//@[23:72) StringComplete |'[parameters(\'vulnerabilityAssessmentsEmail\')]'| +//@[72:73) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + vulnerabilityAssessmentsStorageID: { +//@[14:143) ObjectPropertySyntax +//@[14:47) IdentifierSyntax +//@[14:47) Identifier |vulnerabilityAssessmentsStorageID| +//@[47:48) Colon |:| +//@[49:143) ObjectSyntax +//@[49:50) LeftBrace |{| +//@[50:51) NewLine |\n| + value: '[parameters(\'vulnerabilityAssessmentsStorageID\')]' +//@[16:76) ObjectPropertySyntax +//@[16:21) IdentifierSyntax +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:76) StringSyntax +//@[23:76) StringComplete |'[parameters(\'vulnerabilityAssessmentsStorageID\')]'| +//@[76:77) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + ] +//@[8:9) RightSquare |]| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + type: null +//@[6:16) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |type| +//@[10:11) Colon |:| +//@[12:16) NullLiteralSyntax +//@[12:16) NullKeyword |null| +//@[16:17) NewLine |\n| + name: 'Deploy-Sql-Security' +//@[6:33) ObjectPropertySyntax +//@[6:10) IdentifierSyntax +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:33) StringSyntax +//@[12:33) StringComplete |'Deploy-Sql-Security'| +//@[33:34) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + ] +//@[2:3) RightSquare |]| +//@[3:4) NewLine |\n| +} +//@[0:1) RightBrace |}| +//@[1:3) NewLine |\n\n| + +resource policies_policyDefinitions_0_name 'Microsoft.Authorization/policyDefinitions@2019-09-01' = { +//@[0:547) ResourceDeclarationSyntax +//@[0:8) Identifier |resource| +//@[9:42) IdentifierSyntax +//@[9:42) Identifier |policies_policyDefinitions_0_name| +//@[43:97) StringSyntax +//@[43:97) StringComplete |'Microsoft.Authorization/policyDefinitions@2019-09-01'| +//@[98:99) Assignment |=| +//@[100:547) ObjectSyntax +//@[100:101) LeftBrace |{| +//@[101:102) NewLine |\n| + name: policies.policyDefinitions[0].name +//@[2:42) ObjectPropertySyntax +//@[2:6) IdentifierSyntax +//@[2:6) Identifier |name| +//@[6:7) Colon |:| +//@[8:42) PropertyAccessSyntax +//@[8:37) ArrayAccessSyntax +//@[8:34) PropertyAccessSyntax +//@[8:16) VariableAccessSyntax +//@[8:16) IdentifierSyntax +//@[8:16) Identifier |policies| +//@[16:17) Dot |.| +//@[17:34) IdentifierSyntax +//@[17:34) Identifier |policyDefinitions| +//@[34:35) LeftSquare |[| +//@[35:36) IntegerLiteralSyntax +//@[35:36) Integer |0| +//@[36:37) RightSquare |]| +//@[37:38) Dot |.| +//@[38:42) IdentifierSyntax +//@[38:42) Identifier |name| +//@[42:43) NewLine |\n| + properties: { +//@[2:400) ObjectPropertySyntax +//@[2:12) IdentifierSyntax +//@[2:12) Identifier |properties| +//@[12:13) Colon |:| +//@[14:400) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + displayName: policies.policyDefinitions[0].properties.displayName +//@[4:69) ObjectPropertySyntax +//@[4:15) IdentifierSyntax +//@[4:15) Identifier |displayName| +//@[15:16) Colon |:| +//@[17:69) PropertyAccessSyntax +//@[17:57) PropertyAccessSyntax +//@[17:46) ArrayAccessSyntax +//@[17:43) PropertyAccessSyntax +//@[17:25) VariableAccessSyntax +//@[17:25) IdentifierSyntax +//@[17:25) Identifier |policies| +//@[25:26) Dot |.| +//@[26:43) IdentifierSyntax +//@[26:43) Identifier |policyDefinitions| +//@[43:44) LeftSquare |[| +//@[44:45) IntegerLiteralSyntax +//@[44:45) Integer |0| +//@[45:46) RightSquare |]| +//@[46:47) Dot |.| +//@[47:57) IdentifierSyntax +//@[47:57) Identifier |properties| +//@[57:58) Dot |.| +//@[58:69) IdentifierSyntax +//@[58:69) Identifier |displayName| +//@[69:70) NewLine |\n| + description: policies.policyDefinitions[0].properties.description +//@[4:69) ObjectPropertySyntax +//@[4:15) IdentifierSyntax +//@[4:15) Identifier |description| +//@[15:16) Colon |:| +//@[17:69) PropertyAccessSyntax +//@[17:57) PropertyAccessSyntax +//@[17:46) ArrayAccessSyntax +//@[17:43) PropertyAccessSyntax +//@[17:25) VariableAccessSyntax +//@[17:25) IdentifierSyntax +//@[17:25) Identifier |policies| +//@[25:26) Dot |.| +//@[26:43) IdentifierSyntax +//@[26:43) Identifier |policyDefinitions| +//@[43:44) LeftSquare |[| +//@[44:45) IntegerLiteralSyntax +//@[44:45) Integer |0| +//@[45:46) RightSquare |]| +//@[46:47) Dot |.| +//@[47:57) IdentifierSyntax +//@[47:57) Identifier |properties| +//@[57:58) Dot |.| +//@[58:69) IdentifierSyntax +//@[58:69) Identifier |description| +//@[69:70) NewLine |\n| + mode: 'All' +//@[4:15) ObjectPropertySyntax +//@[4:8) IdentifierSyntax +//@[4:8) Identifier |mode| +//@[8:9) Colon |:| +//@[10:15) StringSyntax +//@[10:15) StringComplete |'All'| +//@[15:16) NewLine |\n| + policyType: 'Custom' +//@[4:24) ObjectPropertySyntax +//@[4:14) IdentifierSyntax +//@[4:14) Identifier |policyType| +//@[14:15) Colon |:| +//@[16:24) StringSyntax +//@[16:24) StringComplete |'Custom'| +//@[24:25) NewLine |\n| + parameters: policies.policyDefinitions[0].properties.parameters +//@[4:67) ObjectPropertySyntax +//@[4:14) IdentifierSyntax +//@[4:14) Identifier |parameters| +//@[14:15) Colon |:| +//@[16:67) PropertyAccessSyntax +//@[16:56) PropertyAccessSyntax +//@[16:45) ArrayAccessSyntax +//@[16:42) PropertyAccessSyntax +//@[16:24) VariableAccessSyntax +//@[16:24) IdentifierSyntax +//@[16:24) Identifier |policies| +//@[24:25) Dot |.| +//@[25:42) IdentifierSyntax +//@[25:42) Identifier |policyDefinitions| +//@[42:43) LeftSquare |[| +//@[43:44) IntegerLiteralSyntax +//@[43:44) Integer |0| +//@[44:45) RightSquare |]| +//@[45:46) Dot |.| +//@[46:56) IdentifierSyntax +//@[46:56) Identifier |properties| +//@[56:57) Dot |.| +//@[57:67) IdentifierSyntax +//@[57:67) Identifier |parameters| +//@[67:68) NewLine |\n| + policyRule: policies.policyDefinitions[0].properties.policyRule +//@[4:67) ObjectPropertySyntax +//@[4:14) IdentifierSyntax +//@[4:14) Identifier |policyRule| +//@[14:15) Colon |:| +//@[16:67) PropertyAccessSyntax +//@[16:56) PropertyAccessSyntax +//@[16:45) ArrayAccessSyntax +//@[16:42) PropertyAccessSyntax +//@[16:24) VariableAccessSyntax +//@[16:24) IdentifierSyntax +//@[16:24) Identifier |policies| +//@[24:25) Dot |.| +//@[25:42) IdentifierSyntax +//@[25:42) Identifier |policyDefinitions| +//@[42:43) LeftSquare |[| +//@[43:44) IntegerLiteralSyntax +//@[43:44) Integer |0| +//@[44:45) RightSquare |]| +//@[45:46) Dot |.| +//@[46:56) IdentifierSyntax +//@[46:56) Identifier |properties| +//@[56:57) Dot |.| +//@[57:67) IdentifierSyntax +//@[57:67) Identifier |policyRule| +//@[67:68) NewLine |\n| + metadata: policies.policyDefinitions[0].properties.metadata +//@[4:63) ObjectPropertySyntax +//@[4:12) IdentifierSyntax +//@[4:12) Identifier |metadata| +//@[12:13) Colon |:| +//@[14:63) PropertyAccessSyntax +//@[14:54) PropertyAccessSyntax +//@[14:43) ArrayAccessSyntax +//@[14:40) PropertyAccessSyntax +//@[14:22) VariableAccessSyntax +//@[14:22) IdentifierSyntax +//@[14:22) Identifier |policies| +//@[22:23) Dot |.| +//@[23:40) IdentifierSyntax +//@[23:40) Identifier |policyDefinitions| +//@[40:41) LeftSquare |[| +//@[41:42) IntegerLiteralSyntax +//@[41:42) Integer |0| +//@[42:43) RightSquare |]| +//@[43:44) Dot |.| +//@[44:54) IdentifierSyntax +//@[44:54) Identifier |properties| +//@[54:55) Dot |.| +//@[55:63) IdentifierSyntax +//@[55:63) Identifier |metadata| +//@[63:64) NewLine |\n| + } +//@[2:3) RightBrace |}| +//@[3:4) NewLine |\n| +} +//@[0:1) RightBrace |}| +//@[1:3) NewLine |\n\n| + +resource initiatives_policySetDefinitions_0_name 'Microsoft.Authorization/policySetDefinitions@2019-09-01' = { +//@[0:565) ResourceDeclarationSyntax +//@[0:8) Identifier |resource| +//@[9:48) IdentifierSyntax +//@[9:48) Identifier |initiatives_policySetDefinitions_0_name| +//@[49:106) StringSyntax +//@[49:106) StringComplete |'Microsoft.Authorization/policySetDefinitions@2019-09-01'| +//@[107:108) Assignment |=| +//@[109:565) ObjectSyntax +//@[109:110) LeftBrace |{| +//@[110:111) NewLine |\n| + name: initiatives.policySetDefinitions[0].name +//@[2:48) ObjectPropertySyntax +//@[2:6) IdentifierSyntax +//@[2:6) Identifier |name| +//@[6:7) Colon |:| +//@[8:48) PropertyAccessSyntax +//@[8:43) ArrayAccessSyntax +//@[8:40) PropertyAccessSyntax +//@[8:19) VariableAccessSyntax +//@[8:19) IdentifierSyntax +//@[8:19) Identifier |initiatives| +//@[19:20) Dot |.| +//@[20:40) IdentifierSyntax +//@[20:40) Identifier |policySetDefinitions| +//@[40:41) LeftSquare |[| +//@[41:42) IntegerLiteralSyntax +//@[41:42) Integer |0| +//@[42:43) RightSquare |]| +//@[43:44) Dot |.| +//@[44:48) IdentifierSyntax +//@[44:48) Identifier |name| +//@[48:49) NewLine |\n| + properties: { +//@[2:403) ObjectPropertySyntax +//@[2:12) IdentifierSyntax +//@[2:12) Identifier |properties| +//@[12:13) Colon |:| +//@[14:403) ObjectSyntax +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + displayName: initiatives.policySetDefinitions[0].properties.displayName +//@[4:75) ObjectPropertySyntax +//@[4:15) IdentifierSyntax +//@[4:15) Identifier |displayName| +//@[15:16) Colon |:| +//@[17:75) PropertyAccessSyntax +//@[17:63) PropertyAccessSyntax +//@[17:52) ArrayAccessSyntax +//@[17:49) PropertyAccessSyntax +//@[17:28) VariableAccessSyntax +//@[17:28) IdentifierSyntax +//@[17:28) Identifier |initiatives| +//@[28:29) Dot |.| +//@[29:49) IdentifierSyntax +//@[29:49) Identifier |policySetDefinitions| +//@[49:50) LeftSquare |[| +//@[50:51) IntegerLiteralSyntax +//@[50:51) Integer |0| +//@[51:52) RightSquare |]| +//@[52:53) Dot |.| +//@[53:63) IdentifierSyntax +//@[53:63) Identifier |properties| +//@[63:64) Dot |.| +//@[64:75) IdentifierSyntax +//@[64:75) Identifier |displayName| +//@[75:76) NewLine |\n| + description: initiatives.policySetDefinitions[0].properties.description +//@[4:75) ObjectPropertySyntax +//@[4:15) IdentifierSyntax +//@[4:15) Identifier |description| +//@[15:16) Colon |:| +//@[17:75) PropertyAccessSyntax +//@[17:63) PropertyAccessSyntax +//@[17:52) ArrayAccessSyntax +//@[17:49) PropertyAccessSyntax +//@[17:28) VariableAccessSyntax +//@[17:28) IdentifierSyntax +//@[17:28) Identifier |initiatives| +//@[28:29) Dot |.| +//@[29:49) IdentifierSyntax +//@[29:49) Identifier |policySetDefinitions| +//@[49:50) LeftSquare |[| +//@[50:51) IntegerLiteralSyntax +//@[50:51) Integer |0| +//@[51:52) RightSquare |]| +//@[52:53) Dot |.| +//@[53:63) IdentifierSyntax +//@[53:63) Identifier |properties| +//@[63:64) Dot |.| +//@[64:75) IdentifierSyntax +//@[64:75) Identifier |description| +//@[75:76) NewLine |\n| + parameters: initiatives.policySetDefinitions[0].properties.parameters +//@[4:73) ObjectPropertySyntax +//@[4:14) IdentifierSyntax +//@[4:14) Identifier |parameters| +//@[14:15) Colon |:| +//@[16:73) PropertyAccessSyntax +//@[16:62) PropertyAccessSyntax +//@[16:51) ArrayAccessSyntax +//@[16:48) PropertyAccessSyntax +//@[16:27) VariableAccessSyntax +//@[16:27) IdentifierSyntax +//@[16:27) Identifier |initiatives| +//@[27:28) Dot |.| +//@[28:48) IdentifierSyntax +//@[28:48) Identifier |policySetDefinitions| +//@[48:49) LeftSquare |[| +//@[49:50) IntegerLiteralSyntax +//@[49:50) Integer |0| +//@[50:51) RightSquare |]| +//@[51:52) Dot |.| +//@[52:62) IdentifierSyntax +//@[52:62) Identifier |properties| +//@[62:63) Dot |.| +//@[63:73) IdentifierSyntax +//@[63:73) Identifier |parameters| +//@[73:74) NewLine |\n| + policyDefinitions: initiatives.policySetDefinitions[0].properties.policyDefinitions +//@[4:87) ObjectPropertySyntax +//@[4:21) IdentifierSyntax +//@[4:21) Identifier |policyDefinitions| +//@[21:22) Colon |:| +//@[23:87) PropertyAccessSyntax +//@[23:69) PropertyAccessSyntax +//@[23:58) ArrayAccessSyntax +//@[23:55) PropertyAccessSyntax +//@[23:34) VariableAccessSyntax +//@[23:34) IdentifierSyntax +//@[23:34) Identifier |initiatives| +//@[34:35) Dot |.| +//@[35:55) IdentifierSyntax +//@[35:55) Identifier |policySetDefinitions| +//@[55:56) LeftSquare |[| +//@[56:57) IntegerLiteralSyntax +//@[56:57) Integer |0| +//@[57:58) RightSquare |]| +//@[58:59) Dot |.| +//@[59:69) IdentifierSyntax +//@[59:69) Identifier |properties| +//@[69:70) Dot |.| +//@[70:87) IdentifierSyntax +//@[70:87) Identifier |policyDefinitions| +//@[87:88) NewLine |\n| + metadata: initiatives.policySetDefinitions[0].properties.metadata +//@[4:69) ObjectPropertySyntax +//@[4:12) IdentifierSyntax +//@[4:12) Identifier |metadata| +//@[12:13) Colon |:| +//@[14:69) PropertyAccessSyntax +//@[14:60) PropertyAccessSyntax +//@[14:49) ArrayAccessSyntax +//@[14:46) PropertyAccessSyntax +//@[14:25) VariableAccessSyntax +//@[14:25) IdentifierSyntax +//@[14:25) Identifier |initiatives| +//@[25:26) Dot |.| +//@[26:46) IdentifierSyntax +//@[26:46) Identifier |policySetDefinitions| +//@[46:47) LeftSquare |[| +//@[47:48) IntegerLiteralSyntax +//@[47:48) Integer |0| +//@[48:49) RightSquare |]| +//@[49:50) Dot |.| +//@[50:60) IdentifierSyntax +//@[50:60) Identifier |properties| +//@[60:61) Dot |.| +//@[61:69) IdentifierSyntax +//@[61:69) Identifier |metadata| +//@[69:70) NewLine |\n| + } +//@[2:3) RightBrace |}| +//@[3:4) NewLine |\n| +} +//@[0:1) RightBrace |}| +//@[1:1) EndOfFile || diff --git a/src/Bicep.Core.Samples/Files/LargeTemplate_LF/main.tokens.bicep b/src/Bicep.Core.Samples/Files/LargeTemplate_LF/main.tokens.bicep new file mode 100644 index 00000000000..ecc3ea0221d --- /dev/null +++ b/src/Bicep.Core.Samples/Files/LargeTemplate_LF/main.tokens.bicep @@ -0,0 +1,73938 @@ +targetScope = 'managementGroup' +//@[0:11) Identifier |targetScope| +//@[12:13) Assignment |=| +//@[14:31) StringComplete |'managementGroup'| +//@[31:33) NewLine |\n\n| + +@maxLength(5) +//@[0:1) At |@| +//@[1:10) Identifier |maxLength| +//@[10:11) LeftParen |(| +//@[11:12) Integer |5| +//@[12:13) RightParen |)| +//@[13:14) NewLine |\n| +param topLevelManagementGroupPrefix string +//@[0:5) Identifier |param| +//@[6:35) Identifier |topLevelManagementGroupPrefix| +//@[36:42) Identifier |string| +//@[42:44) NewLine |\n\n| + +var scope = '/providers/Microsoft.Management/managementGroups/${topLevelManagementGroupPrefix}' +//@[0:3) Identifier |var| +//@[4:9) Identifier |scope| +//@[10:11) Assignment |=| +//@[12:64) StringLeftPiece |'/providers/Microsoft.Management/managementGroups/${| +//@[64:93) Identifier |topLevelManagementGroupPrefix| +//@[93:95) StringRightPiece |}'| +//@[95:96) NewLine |\n| +var policies = { +//@[0:3) Identifier |var| +//@[4:12) Identifier |policies| +//@[13:14) Assignment |=| +//@[15:16) LeftBrace |{| +//@[16:17) NewLine |\n| + policyDefinitions: [ +//@[2:19) Identifier |policyDefinitions| +//@[19:20) Colon |:| +//@[21:22) LeftSquare |[| +//@[22:23) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[10:20) Identifier |properties| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + Description: 'Deploys the diagnostic settings for Container Instances to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.' +//@[12:23) Identifier |Description| +//@[23:24) Colon |:| +//@[25:259) StringComplete |'Deploys the diagnostic settings for Container Instances to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.'| +//@[259:260) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Container Instances to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:100) StringComplete |'Deploy Diagnostic Settings for Container Instances to Log Analytics workspace'| +//@[100:101) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.ContainerInstance/containerGroups' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:65) StringComplete |'Microsoft.ContainerInstance/containerGroups'| +//@[65:66) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.ContainerInstance/containerGroups/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:104) StringComplete |'Microsoft.ContainerInstance/containerGroups/providers/diagnosticSettings'| +//@[104:105) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [] +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) RightSquare |]| +//@[34:35) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-ACI' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:36) StringComplete |'Deploy-Diagnostics-ACI'| +//@[36:37) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + Properties: { +//@[6:16) Identifier |Properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Depoloys a default budget on subscriptions.' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:66) StringComplete |'Depoloys a default budget on subscriptions.'| +//@[66:67) NewLine |\n| + DisplayName: 'Deploy a default budget on subscriptions' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:63) StringComplete |'Deploy a default budget on subscriptions'| +//@[63:64) NewLine |\n| + Mode: 'All' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:19) StringComplete |'All'| +//@[19:20) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + amount: { +//@[10:16) Identifier |amount| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: '1000' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'1000'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + description: 'The total amount of cost or usage to track with the budget' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:87) StringComplete |'The total amount of cost or usage to track with the budget'| +//@[87:88) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + timeGrain: { +//@[10:19) Identifier |timeGrain| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'Monthly' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:35) StringComplete |'Monthly'| +//@[35:36) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Monthly' +//@[14:23) StringComplete |'Monthly'| +//@[23:24) NewLine |\n| + 'Quarterly' +//@[14:25) StringComplete |'Quarterly'| +//@[25:26) NewLine |\n| + 'Annually' +//@[14:24) StringComplete |'Annually'| +//@[24:25) NewLine |\n| + 'BillingMonth' +//@[14:28) StringComplete |'BillingMonth'| +//@[28:29) NewLine |\n| + 'BillingQuarter' +//@[14:30) StringComplete |'BillingQuarter'| +//@[30:31) NewLine |\n| + 'BillingAnnual' +//@[14:29) StringComplete |'BillingAnnual'| +//@[29:30) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + description: 'The time covered by a budget. Tracking of the amount will be reset based on the time grain.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:120) StringComplete |'The time covered by a budget. Tracking of the amount will be reset based on the time grain.'| +//@[120:121) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + firstThreshold: { +//@[10:24) Identifier |firstThreshold| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: '90' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:30) StringComplete |'90'| +//@[30:31) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + description: 'Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0 and 1000.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:190) StringComplete |'Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0 and 1000.'| +//@[190:191) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + secondThreshold: { +//@[10:25) Identifier |secondThreshold| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: '100' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:31) StringComplete |'100'| +//@[31:32) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + description: 'Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0 and 1000.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:190) StringComplete |'Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0 and 1000.'| +//@[190:191) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + contactRoles: { +//@[10:22) Identifier |contactRoles| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'array' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:25) StringComplete |'array'| +//@[25:26) NewLine |\n| + defaultValue: [ +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:27) LeftSquare |[| +//@[27:28) NewLine |\n| + 'Owner' +//@[14:21) StringComplete |'Owner'| +//@[21:22) NewLine |\n| + 'Contributor' +//@[14:27) StringComplete |'Contributor'| +//@[27:28) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + description: 'The list of contact RBAC roles, in an array, to send the budget notification to when the threshold is exceeded.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:140) StringComplete |'The list of contact RBAC roles, in an array, to send the budget notification to when the threshold is exceeded.'| +//@[140:141) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + contactEmails: { +//@[10:23) Identifier |contactEmails| +//@[23:24) Colon |:| +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + type: 'array' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:25) StringComplete |'array'| +//@[25:26) NewLine |\n| + defaultValue: [] +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:27) LeftSquare |[| +//@[27:28) RightSquare |]| +//@[28:29) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + description: 'The list of email addresses, in an array, to send the budget notification to when the threshold is exceeded.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:137) StringComplete |'The list of email addresses, in an array, to send the budget notification to when the threshold is exceeded.'| +//@[137:138) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + contactGroups: { +//@[10:23) Identifier |contactGroups| +//@[23:24) Colon |:| +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + type: 'array' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:25) StringComplete |'array'| +//@[25:26) NewLine |\n| + defaultValue: [] +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:27) LeftSquare |[| +//@[27:28) RightSquare |]| +//@[28:29) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + description: 'The list of action groups, in an array, to send the budget notification to when the threshold is exceeded. It accepts array of strings.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:164) StringComplete |'The list of action groups, in an array, to send the budget notification to when the threshold is exceeded. It accepts array of strings.'| +//@[164:165) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Budget' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:28) StringComplete |'Budget'| +//@[28:29) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Resources/subscriptions' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringComplete |'Microsoft.Resources/subscriptions'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: 'DeployIfNotExists' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:39) StringComplete |'DeployIfNotExists'| +//@[39:40) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Consumption/budgets' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:51) StringComplete |'Microsoft.Consumption/budgets'| +//@[51:52) NewLine |\n| + deploymentScope: 'Subscription' +//@[14:29) Identifier |deploymentScope| +//@[29:30) Colon |:| +//@[31:45) StringComplete |'Subscription'| +//@[45:46) NewLine |\n| + existenceScope: 'Subscription' +//@[14:28) Identifier |existenceScope| +//@[28:29) Colon |:| +//@[30:44) StringComplete |'Subscription'| +//@[44:45) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Consumption/budgets/amount' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'Microsoft.Consumption/budgets/amount'| +//@[65:66) NewLine |\n| + equals: '[parameters(\'amount\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:54) StringComplete |'[parameters(\'amount\')]'| +//@[54:55) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Consumption/budgets/timeGrain' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:68) StringComplete |'Microsoft.Consumption/budgets/timeGrain'| +//@[68:69) NewLine |\n| + equals: '[parameters(\'timeGrain\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:57) StringComplete |'[parameters(\'timeGrain\')]'| +//@[57:58) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Consumption/budgets/category' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:67) StringComplete |'Microsoft.Consumption/budgets/category'| +//@[67:68) NewLine |\n| + equals: 'Cost' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'Cost'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + location: 'northeurope' +//@[16:24) Identifier |location| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'northeurope'| +//@[39:40) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + amount: { +//@[20:26) Identifier |amount| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'amount\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:55) StringComplete |'[parameters(\'amount\')]'| +//@[55:56) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + timeGrain: { +//@[20:29) Identifier |timeGrain| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) NewLine |\n| + value: '[parameters(\'timeGrain\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:58) StringComplete |'[parameters(\'timeGrain\')]'| +//@[58:59) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + firstThreshold: { +//@[20:34) Identifier |firstThreshold| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'firstThreshold\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'firstThreshold\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + secondThreshold: { +//@[20:35) Identifier |secondThreshold| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + value: '[parameters(\'secondThreshold\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:64) StringComplete |'[parameters(\'secondThreshold\')]'| +//@[64:65) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + contactEmails: { +//@[20:33) Identifier |contactEmails| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + value: '[parameters(\'contactEmails\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:62) StringComplete |'[parameters(\'contactEmails\')]'| +//@[62:63) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + contactRoles: { +//@[20:32) Identifier |contactRoles| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'contactRoles\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'contactRoles\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + contactGroups: { +//@[20:33) Identifier |contactGroups| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + value: '[parameters(\'contactGroups\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:62) StringComplete |'[parameters(\'contactGroups\')]'| +//@[62:63) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:122) StringComplete |'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json'| +//@[122:123) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + amount: { +//@[22:28) Identifier |amount| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + timeGrain: { +//@[22:31) Identifier |timeGrain| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + firstThreshold: { +//@[22:36) Identifier |firstThreshold| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + secondThreshold: { +//@[22:37) Identifier |secondThreshold| +//@[37:38) Colon |:| +//@[39:40) LeftBrace |{| +//@[40:41) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + contactEmails: { +//@[22:35) Identifier |contactEmails| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'array' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:37) StringComplete |'array'| +//@[37:38) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + contactRoles: { +//@[22:34) Identifier |contactRoles| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'array' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:37) StringComplete |'array'| +//@[37:38) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + contactGroups: { +//@[22:35) Identifier |contactGroups| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'array' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:37) StringComplete |'array'| +//@[37:38) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + startDate: { +//@[22:31) Identifier |startDate| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + defaultValue: '[concat(utcNow(\'MM\'), \'/01/\', utcNow(\'yyyy\'))]' +//@[24:36) Identifier |defaultValue| +//@[36:37) Colon |:| +//@[38:92) StringComplete |'[concat(utcNow(\'MM\'), \'/01/\', utcNow(\'yyyy\'))]'| +//@[92:93) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Consumption/budgets' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:61) StringComplete |'Microsoft.Consumption/budgets'| +//@[61:62) NewLine |\n| + apiVersion: '2019-10-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2019-10-01'| +//@[48:49) NewLine |\n| + name: 'default-sandbox-budget' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:54) StringComplete |'default-sandbox-budget'| +//@[54:55) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + timePeriod: { +//@[26:36) Identifier |timePeriod| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + startDate: '[parameters(\'startDate\')]' +//@[28:37) Identifier |startDate| +//@[37:38) Colon |:| +//@[39:68) StringComplete |'[parameters(\'startDate\')]'| +//@[68:69) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + timeGrain: '[parameters(\'timeGrain\')]' +//@[26:35) Identifier |timeGrain| +//@[35:36) Colon |:| +//@[37:66) StringComplete |'[parameters(\'timeGrain\')]'| +//@[66:67) NewLine |\n| + amount: '[parameters(\'amount\')]' +//@[26:32) Identifier |amount| +//@[32:33) Colon |:| +//@[34:60) StringComplete |'[parameters(\'amount\')]'| +//@[60:61) NewLine |\n| + category: 'Cost' +//@[26:34) Identifier |category| +//@[34:35) Colon |:| +//@[36:42) StringComplete |'Cost'| +//@[42:43) NewLine |\n| + notifications: { +//@[26:39) Identifier |notifications| +//@[39:40) Colon |:| +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + NotificationForExceededBudget1: { +//@[28:58) Identifier |NotificationForExceededBudget1| +//@[58:59) Colon |:| +//@[60:61) LeftBrace |{| +//@[61:62) NewLine |\n| + enabled: true +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:43) TrueKeyword |true| +//@[43:44) NewLine |\n| + operator: 'GreaterThan' +//@[30:38) Identifier |operator| +//@[38:39) Colon |:| +//@[40:53) StringComplete |'GreaterThan'| +//@[53:54) NewLine |\n| + threshold: '[parameters(\'firstThreshold\')]' +//@[30:39) Identifier |threshold| +//@[39:40) Colon |:| +//@[41:75) StringComplete |'[parameters(\'firstThreshold\')]'| +//@[75:76) NewLine |\n| + contactEmails: '[parameters(\'contactEmails\')]' +//@[30:43) Identifier |contactEmails| +//@[43:44) Colon |:| +//@[45:78) StringComplete |'[parameters(\'contactEmails\')]'| +//@[78:79) NewLine |\n| + contactRoles: '[parameters(\'contactRoles\')]' +//@[30:42) Identifier |contactRoles| +//@[42:43) Colon |:| +//@[44:76) StringComplete |'[parameters(\'contactRoles\')]'| +//@[76:77) NewLine |\n| + contactGroups: '[parameters(\'contactGroups\')]' +//@[30:43) Identifier |contactGroups| +//@[43:44) Colon |:| +//@[45:78) StringComplete |'[parameters(\'contactGroups\')]'| +//@[78:79) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + NotificationForExceededBudget2: { +//@[28:58) Identifier |NotificationForExceededBudget2| +//@[58:59) Colon |:| +//@[60:61) LeftBrace |{| +//@[61:62) NewLine |\n| + enabled: true +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:43) TrueKeyword |true| +//@[43:44) NewLine |\n| + operator: 'GreaterThan' +//@[30:38) Identifier |operator| +//@[38:39) Colon |:| +//@[40:53) StringComplete |'GreaterThan'| +//@[53:54) NewLine |\n| + threshold: '[parameters(\'secondThreshold\')]' +//@[30:39) Identifier |threshold| +//@[39:40) Colon |:| +//@[41:76) StringComplete |'[parameters(\'secondThreshold\')]'| +//@[76:77) NewLine |\n| + contactEmails: '[parameters(\'contactEmails\')]' +//@[30:43) Identifier |contactEmails| +//@[43:44) Colon |:| +//@[45:78) StringComplete |'[parameters(\'contactEmails\')]'| +//@[78:79) NewLine |\n| + contactRoles: '[parameters(\'contactRoles\')]' +//@[30:42) Identifier |contactRoles| +//@[42:43) Colon |:| +//@[44:76) StringComplete |'[parameters(\'contactRoles\')]'| +//@[76:77) NewLine |\n| + contactGroups: '[parameters(\'contactGroups\')]' +//@[30:43) Identifier |contactGroups| +//@[43:44) Colon |:| +//@[45:78) StringComplete |'[parameters(\'contactGroups\')]'| +//@[78:79) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Budget' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:27) StringComplete |'Deploy-Budget'| +//@[27:28) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Container Registry to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:256) StringComplete |'Deploys the diagnostic settings for Container Registry to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.'| +//@[256:257) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Container Registry to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:99) StringComplete |'Deploy Diagnostic Settings for Container Registry to Log Analytics workspace'| +//@[99:100) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.ContainerRegistry/registries' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:60) StringComplete |'Microsoft.ContainerRegistry/registries'| +//@[60:61) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.ContainerRegistry/registries/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:99) StringComplete |'Microsoft.ContainerRegistry/registries/providers/diagnosticSettings'| +//@[99:100) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ContainerRegistryLoginEvents' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:70) StringComplete |'ContainerRegistryLoginEvents'| +//@[70:71) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ContainerRegistryRepositoryEvents' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:75) StringComplete |'ContainerRegistryRepositoryEvents'| +//@[75:76) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-ACR' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:36) StringComplete |'Deploy-Diagnostics-ACR'| +//@[36:37) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Activity Log to stream to a Log Analytics workspace when any Activity Log which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with category enabled.' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:255) StringComplete |'Deploys the diagnostic settings for Activity Log to stream to a Log Analytics workspace when any Activity Log which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with category enabled.'| +//@[255:256) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Activity Log to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:93) StringComplete |'Deploy Diagnostic Settings for Activity Log to Log Analytics workspace'| +//@[93:94) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Primary Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:60) StringComplete |'Primary Log Analytics workspace'| +//@[60:61) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Resources/subscriptions' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringComplete |'Microsoft.Resources/subscriptions'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + deploymentScope: 'Subscription' +//@[14:29) Identifier |deploymentScope| +//@[29:30) Colon |:| +//@[31:45) StringComplete |'Subscription'| +//@[45:46) NewLine |\n| + existenceScope: 'Subscription' +//@[14:28) Identifier |existenceScope| +//@[28:29) Colon |:| +//@[30:44) StringComplete |'Subscription'| +//@[44:45) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + location: 'northeurope' +//@[16:24) Identifier |location| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'northeurope'| +//@[39:40) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:124) StringComplete |'https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#'| +//@[124:125) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + name: 'subscriptionToLa' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:48) StringComplete |'subscriptionToLa'| +//@[48:49) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:69) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[69:70) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + location: 'Global' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:42) StringComplete |'Global'| +//@[42:43) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Administrative' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:56) StringComplete |'Administrative'| +//@[56:57) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Security' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:50) StringComplete |'Security'| +//@[50:51) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ServiceHealth' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:55) StringComplete |'ServiceHealth'| +//@[55:56) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Alert' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:47) StringComplete |'Alert'| +//@[47:48) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Recommendation' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:56) StringComplete |'Recommendation'| +//@[56:57) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Policy' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:48) StringComplete |'Policy'| +//@[48:49) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Autoscale' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:51) StringComplete |'Autoscale'| +//@[51:52) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ResourceHealth' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:56) StringComplete |'ResourceHealth'| +//@[56:57) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-ActivityLog' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:44) StringComplete |'Deploy-Diagnostics-ActivityLog'| +//@[44:45) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Kubernetes Service to stream to a Log Analytics workspace when any Kubernetes Service which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:283) StringComplete |'Deploys the diagnostic settings for Kubernetes Service to stream to a Log Analytics workspace when any Kubernetes Service which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.'| +//@[283:284) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Kubernetes Service to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:99) StringComplete |'Deploy Diagnostic Settings for Kubernetes Service to Log Analytics workspace'| +//@[99:100) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.ContainerService/managedClusters' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:64) StringComplete |'Microsoft.ContainerService/managedClusters'| +//@[64:65) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.ContainerService/managedClusters/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:103) StringComplete |'Microsoft.ContainerService/managedClusters/providers/diagnosticSettings'| +//@[103:104) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'kube-audit' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'kube-audit'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'kube-apiserver' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:56) StringComplete |'kube-apiserver'| +//@[56:57) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'kube-controller-manager' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:65) StringComplete |'kube-controller-manager'| +//@[65:66) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'kube-scheduler' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:56) StringComplete |'kube-scheduler'| +//@[56:57) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'cluster-autoscaler' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:60) StringComplete |'cluster-autoscaler'| +//@[60:61) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'guard' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:47) StringComplete |'guard'| +//@[47:48) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'kube-audit-admin' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:58) StringComplete |'kube-audit-admin'| +//@[58:59) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-AKS' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:36) StringComplete |'Deploy-Diagnostics-AKS'| +//@[36:37) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + Properties: { +//@[6:16) Identifier |Properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy deploys virtual network and peer to the hub' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:78) StringComplete |'This policy deploys virtual network and peer to the hub'| +//@[78:79) NewLine |\n| + DisplayName: 'Deploys virtual network peering to hub' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:61) StringComplete |'Deploys virtual network peering to hub'| +//@[61:62) NewLine |\n| + Mode: 'All' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:19) StringComplete |'All'| +//@[19:20) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + vNetName: { +//@[10:18) Identifier |vNetName| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'vNetName' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:37) StringComplete |'vNetName'| +//@[37:38) NewLine |\n| + description: 'Name of the landing zone vNet' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:58) StringComplete |'Name of the landing zone vNet'| +//@[58:59) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + vNetRgName: { +//@[10:20) Identifier |vNetRgName| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'vNetRgName' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:39) StringComplete |'vNetRgName'| +//@[39:40) NewLine |\n| + description: 'Name of the landing zone vNet RG' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:61) StringComplete |'Name of the landing zone vNet RG'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + vNetLocation: { +//@[10:22) Identifier |vNetLocation| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'vNetLocation' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'vNetLocation'| +//@[41:42) NewLine |\n| + description: 'Location for the vNet' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:50) StringComplete |'Location for the vNet'| +//@[50:51) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + vNetCidrRange: { +//@[10:23) Identifier |vNetCidrRange| +//@[23:24) Colon |:| +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'vNetCidrRange' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:42) StringComplete |'vNetCidrRange'| +//@[42:43) NewLine |\n| + description: 'CIDR Range for the vNet' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'CIDR Range for the vNet'| +//@[52:53) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + hubResourceId: { +//@[10:23) Identifier |hubResourceId| +//@[23:24) Colon |:| +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'hubResourceId' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:42) StringComplete |'hubResourceId'| +//@[42:43) NewLine |\n| + description: 'Resource ID for the HUB vNet' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:57) StringComplete |'Resource ID for the HUB vNet'| +//@[57:58) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Resources/subscriptions' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringComplete |'Microsoft.Resources/subscriptions'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: 'deployIfNotExists' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:39) StringComplete |'deployIfNotExists'| +//@[39:40) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/virtualNetworks' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:55) StringComplete |'Microsoft.Network/virtualNetworks'| +//@[55:56) NewLine |\n| + name: '[parameters(\'vNetName\')]' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:48) StringComplete |'[parameters(\'vNetName\')]'| +//@[48:49) NewLine |\n| + deploymentScope: 'Subscription' +//@[14:29) Identifier |deploymentScope| +//@[29:30) Colon |:| +//@[31:45) StringComplete |'Subscription'| +//@[45:46) NewLine |\n| + existenceScope: 'ResourceGroup' +//@[14:28) Identifier |existenceScope| +//@[28:29) Colon |:| +//@[30:45) StringComplete |'ResourceGroup'| +//@[45:46) NewLine |\n| + ResourceGroupName: '[parameters(\'vNetRgName\')]' +//@[14:31) Identifier |ResourceGroupName| +//@[31:32) Colon |:| +//@[33:63) StringComplete |'[parameters(\'vNetRgName\')]'| +//@[63:64) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'name' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:33) StringComplete |'name'| +//@[33:34) NewLine |\n| + like: '[parameters(\'vNetName\')]' +//@[20:24) Identifier |like| +//@[24:25) Colon |:| +//@[26:54) StringComplete |'[parameters(\'vNetName\')]'| +//@[54:55) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'location' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:37) StringComplete |'location'| +//@[37:38) NewLine |\n| + equals: '[parameters(\'vNetLocation\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'vNetLocation\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + location: 'northeurope' +//@[16:24) Identifier |location| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'northeurope'| +//@[39:40) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + vNetRgName: { +//@[20:30) Identifier |vNetRgName| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + value: '[parameters(\'vNetRgName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:59) StringComplete |'[parameters(\'vNetRgName\')]'| +//@[59:60) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + vNetName: { +//@[20:28) Identifier |vNetName| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[parameters(\'vNetName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:57) StringComplete |'[parameters(\'vNetName\')]'| +//@[57:58) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + vNetLocation: { +//@[20:32) Identifier |vNetLocation| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'vNetLocation\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'vNetLocation\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + vNetCidrRange: { +//@[20:33) Identifier |vNetCidrRange| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + value: '[parameters(\'vNetCidrRange\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:62) StringComplete |'[parameters(\'vNetCidrRange\')]'| +//@[62:63) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + hubResourceId: { +//@[20:33) Identifier |hubResourceId| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + value: '[parameters(\'hubResourceId\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:62) StringComplete |'[parameters(\'hubResourceId\')]'| +//@[62:63) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:122) StringComplete |'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json'| +//@[122:123) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + vNetRgName: { +//@[22:32) Identifier |vNetRgName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + vNetName: { +//@[22:30) Identifier |vNetName| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + vNetLocation: { +//@[22:34) Identifier |vNetLocation| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + vNetCidrRange: { +//@[22:35) Identifier |vNetCidrRange| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + vNetPeerUseRemoteGateway: { +//@[22:46) Identifier |vNetPeerUseRemoteGateway| +//@[46:47) Colon |:| +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + type: 'bool' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:36) StringComplete |'bool'| +//@[36:37) NewLine |\n| + defaultValue: false +//@[24:36) Identifier |defaultValue| +//@[36:37) Colon |:| +//@[38:43) FalseKeyword |false| +//@[43:44) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + hubResourceId: { +//@[22:35) Identifier |hubResourceId| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2020-06-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2020-06-01'| +//@[48:49) NewLine |\n| + name: '[concat(\'es-lz-vnet-\',substring(uniqueString(subscription().id),0,6),\'-rg\')]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:112) StringComplete |'[concat(\'es-lz-vnet-\',substring(uniqueString(subscription().id),0,6),\'-rg\')]'| +//@[112:113) NewLine |\n| + location: '[parameters(\'vNetLocation\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:66) StringComplete |'[parameters(\'vNetLocation\')]'| +//@[66:67) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:120) StringComplete |'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[120:121) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Resources/resourceGroups' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:74) StringComplete |'Microsoft.Resources/resourceGroups'| +//@[74:75) NewLine |\n| + apiVersion: '2020-06-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2020-06-01'| +//@[56:57) NewLine |\n| + name: '[parameters(\'vNetRgName\')]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:68) StringComplete |'[parameters(\'vNetRgName\')]'| +//@[68:69) NewLine |\n| + location: '[parameters(\'vNetLocation\')]' +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:74) StringComplete |'[parameters(\'vNetLocation\')]'| +//@[74:75) NewLine |\n| + properties: {} +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) RightBrace |}| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Resources/resourceGroups' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:74) StringComplete |'Microsoft.Resources/resourceGroups'| +//@[74:75) NewLine |\n| + apiVersion: '2020-06-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2020-06-01'| +//@[56:57) NewLine |\n| + name: 'NetworkWatcherRG' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:56) StringComplete |'NetworkWatcherRG'| +//@[56:57) NewLine |\n| + location: '[parameters(\'vNetLocation\')]' +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:74) StringComplete |'[parameters(\'vNetLocation\')]'| +//@[74:75) NewLine |\n| + properties: {} +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) RightBrace |}| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + outputs: {} +//@[28:35) Identifier |outputs| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2020-06-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2020-06-01'| +//@[48:49) NewLine |\n| + name: '[concat(\'es-lz-vnet-\',substring(uniqueString(subscription().id),0,6))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:104) StringComplete |'[concat(\'es-lz-vnet-\',substring(uniqueString(subscription().id),0,6))]'| +//@[104:105) NewLine |\n| + dependsOn: [ +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(\'es-lz-vnet-\',substring(uniqueString(subscription().id),0,6),\'-rg\')]' +//@[26:108) StringComplete |'[concat(\'es-lz-vnet-\',substring(uniqueString(subscription().id),0,6),\'-rg\')]'| +//@[108:109) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:120) StringComplete |'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[120:121) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Network/virtualNetworks' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:73) StringComplete |'Microsoft.Network/virtualNetworks'| +//@[73:74) NewLine |\n| + apiVersion: '2020-06-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2020-06-01'| +//@[56:57) NewLine |\n| + name: '[parameters(\'vNetName\')]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:66) StringComplete |'[parameters(\'vNetName\')]'| +//@[66:67) NewLine |\n| + location: '[parameters(\'vNetLocation\')]' +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:74) StringComplete |'[parameters(\'vNetLocation\')]'| +//@[74:75) NewLine |\n| + dependsOn: [] +//@[32:41) Identifier |dependsOn| +//@[41:42) Colon |:| +//@[43:44) LeftSquare |[| +//@[44:45) RightSquare |]| +//@[45:46) NewLine |\n| + properties: { +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + addressSpace: { +//@[34:46) Identifier |addressSpace| +//@[46:47) Colon |:| +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + addressPrefixes: [ +//@[36:51) Identifier |addressPrefixes| +//@[51:52) Colon |:| +//@[53:54) LeftSquare |[| +//@[54:55) NewLine |\n| + '[parameters(\'vNetCidrRange\')]' +//@[38:71) StringComplete |'[parameters(\'vNetCidrRange\')]'| +//@[71:72) NewLine |\n| + ] +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:96) StringComplete |'Microsoft.Network/virtualNetworks/virtualNetworkPeerings'| +//@[96:97) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'vNetName\'), \'/peerToHub\')]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:90) StringComplete |'[concat(parameters(\'vNetName\'), \'/peerToHub\')]'| +//@[90:91) NewLine |\n| + dependsOn: [ +//@[32:41) Identifier |dependsOn| +//@[41:42) Colon |:| +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + '[parameters(\'vNetName\')]' +//@[34:62) StringComplete |'[parameters(\'vNetName\')]'| +//@[62:63) NewLine |\n| + ] +//@[32:33) RightSquare |]| +//@[33:34) NewLine |\n| + properties: { +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + remoteVirtualNetwork: { +//@[34:54) Identifier |remoteVirtualNetwork| +//@[54:55) Colon |:| +//@[56:57) LeftBrace |{| +//@[57:58) NewLine |\n| + id: '[parameters(\'hubResourceId\')]' +//@[36:38) Identifier |id| +//@[38:39) Colon |:| +//@[40:73) StringComplete |'[parameters(\'hubResourceId\')]'| +//@[73:74) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + allowVirtualNetworkAccess: true +//@[34:59) Identifier |allowVirtualNetworkAccess| +//@[59:60) Colon |:| +//@[61:65) TrueKeyword |true| +//@[65:66) NewLine |\n| + allowForwardedTraffic: true +//@[34:55) Identifier |allowForwardedTraffic| +//@[55:56) Colon |:| +//@[57:61) TrueKeyword |true| +//@[61:62) NewLine |\n| + allowGatewayTransit: false +//@[34:53) Identifier |allowGatewayTransit| +//@[53:54) Colon |:| +//@[55:60) FalseKeyword |false| +//@[60:61) NewLine |\n| + useRemoteGateways: '[parameters(\'vNetPeerUseRemoteGateway\')]' +//@[34:51) Identifier |useRemoteGateways| +//@[51:52) Colon |:| +//@[53:97) StringComplete |'[parameters(\'vNetPeerUseRemoteGateway\')]'| +//@[97:98) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:71) StringComplete |'Microsoft.Resources/deployments'| +//@[71:72) NewLine |\n| + apiVersion: '2020-06-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2020-06-01'| +//@[56:57) NewLine |\n| + name: '[concat(\'es-lz-hub-\',substring(uniqueString(subscription().id),0,6),\'-peering\')]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:124) StringComplete |'[concat(\'es-lz-hub-\',substring(uniqueString(subscription().id),0,6),\'-peering\')]'| +//@[124:125) NewLine |\n| + subscriptionId: '[split(parameters(\'hubResourceId\'),\'/\')[2]]' +//@[32:46) Identifier |subscriptionId| +//@[46:47) Colon |:| +//@[48:97) StringComplete |'[split(parameters(\'hubResourceId\'),\'/\')[2]]'| +//@[97:98) NewLine |\n| + resourceGroup: '[split(parameters(\'hubResourceId\'),\'/\')[4]]' +//@[32:45) Identifier |resourceGroup| +//@[45:46) Colon |:| +//@[47:96) StringComplete |'[split(parameters(\'hubResourceId\'),\'/\')[4]]'| +//@[96:97) NewLine |\n| + dependsOn: [ +//@[32:41) Identifier |dependsOn| +//@[41:42) Colon |:| +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + '[parameters(\'vNetName\')]' +//@[34:62) StringComplete |'[parameters(\'vNetName\')]'| +//@[62:63) NewLine |\n| + ] +//@[32:33) RightSquare |]| +//@[33:34) NewLine |\n| + properties: { +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + mode: 'Incremental' +//@[34:38) Identifier |mode| +//@[38:39) Colon |:| +//@[40:53) StringComplete |'Incremental'| +//@[53:54) NewLine |\n| + expressionEvaluationOptions: { +//@[34:61) Identifier |expressionEvaluationOptions| +//@[61:62) Colon |:| +//@[63:64) LeftBrace |{| +//@[64:65) NewLine |\n| + scope: 'inner' +//@[36:41) Identifier |scope| +//@[41:42) Colon |:| +//@[43:50) StringComplete |'inner'| +//@[50:51) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + template: { +//@[34:42) Identifier |template| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[36:45) StringComplete |'$schema'| +//@[45:46) Colon |:| +//@[47:128) StringComplete |'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[128:129) NewLine |\n| + contentVersion: '1.0.0.0' +//@[36:50) Identifier |contentVersion| +//@[50:51) Colon |:| +//@[52:61) StringComplete |'1.0.0.0'| +//@[61:62) NewLine |\n| + parameters: { +//@[36:46) Identifier |parameters| +//@[46:47) Colon |:| +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + remoteVirtualNetwork: { +//@[38:58) Identifier |remoteVirtualNetwork| +//@[58:59) Colon |:| +//@[60:61) LeftBrace |{| +//@[61:62) NewLine |\n| + Type: 'string' +//@[40:44) Identifier |Type| +//@[44:45) Colon |:| +//@[46:54) StringComplete |'string'| +//@[54:55) NewLine |\n| + defaultValue: false +//@[40:52) Identifier |defaultValue| +//@[52:53) Colon |:| +//@[54:59) FalseKeyword |false| +//@[59:60) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + hubName: { +//@[38:45) Identifier |hubName| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + Type: 'string' +//@[40:44) Identifier |Type| +//@[44:45) Colon |:| +//@[46:54) StringComplete |'string'| +//@[54:55) NewLine |\n| + defaultValue: false +//@[40:52) Identifier |defaultValue| +//@[52:53) Colon |:| +//@[54:59) FalseKeyword |false| +//@[59:60) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + variables: {} +//@[36:45) Identifier |variables| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) RightBrace |}| +//@[49:50) NewLine |\n| + resources: [ +//@[36:45) Identifier |resources| +//@[45:46) Colon |:| +//@[47:48) LeftSquare |[| +//@[48:49) NewLine |\n| + { +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' +//@[40:44) Identifier |type| +//@[44:45) Colon |:| +//@[46:104) StringComplete |'Microsoft.Network/virtualNetworks/virtualNetworkPeerings'| +//@[104:105) NewLine |\n| + name: '[[concat(parameters(\'hubName\'),\'/\',last(split(parameters(\'remoteVirtualNetwork\'),\'/\')))]' +//@[40:44) Identifier |name| +//@[44:45) Colon |:| +//@[46:144) StringComplete |'[[concat(parameters(\'hubName\'),\'/\',last(split(parameters(\'remoteVirtualNetwork\'),\'/\')))]'| +//@[144:145) NewLine |\n| + apiVersion: '2020-05-01' +//@[40:50) Identifier |apiVersion| +//@[50:51) Colon |:| +//@[52:64) StringComplete |'2020-05-01'| +//@[64:65) NewLine |\n| + properties: { +//@[40:50) Identifier |properties| +//@[50:51) Colon |:| +//@[52:53) LeftBrace |{| +//@[53:54) NewLine |\n| + allowVirtualNetworkAccess: true +//@[42:67) Identifier |allowVirtualNetworkAccess| +//@[67:68) Colon |:| +//@[69:73) TrueKeyword |true| +//@[73:74) NewLine |\n| + allowForwardedTraffic: true +//@[42:63) Identifier |allowForwardedTraffic| +//@[63:64) Colon |:| +//@[65:69) TrueKeyword |true| +//@[69:70) NewLine |\n| + allowGatewayTransit: true +//@[42:61) Identifier |allowGatewayTransit| +//@[61:62) Colon |:| +//@[63:67) TrueKeyword |true| +//@[67:68) NewLine |\n| + useRemoteGateways: false +//@[42:59) Identifier |useRemoteGateways| +//@[59:60) Colon |:| +//@[61:66) FalseKeyword |false| +//@[66:67) NewLine |\n| + remoteVirtualNetwork: { +//@[42:62) Identifier |remoteVirtualNetwork| +//@[62:63) Colon |:| +//@[64:65) LeftBrace |{| +//@[65:66) NewLine |\n| + id: '[[parameters(\'remoteVirtualNetwork\')]' +//@[44:46) Identifier |id| +//@[46:47) Colon |:| +//@[48:89) StringComplete |'[[parameters(\'remoteVirtualNetwork\')]'| +//@[89:90) NewLine |\n| + } +//@[42:43) RightBrace |}| +//@[43:44) NewLine |\n| + } +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + ] +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + outputs: {} +//@[36:43) Identifier |outputs| +//@[43:44) Colon |:| +//@[45:46) LeftBrace |{| +//@[46:47) RightBrace |}| +//@[47:48) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + parameters: { +//@[34:44) Identifier |parameters| +//@[44:45) Colon |:| +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + remoteVirtualNetwork: { +//@[36:56) Identifier |remoteVirtualNetwork| +//@[56:57) Colon |:| +//@[58:59) LeftBrace |{| +//@[59:60) NewLine |\n| + value: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'vNetRgName\'), \'/providers/\',\'Microsoft.Network/virtualNetworks/\', parameters(\'vNetName\'))]' +//@[38:43) Identifier |value| +//@[43:44) Colon |:| +//@[45:204) StringComplete |'[concat(subscription().id,\'/resourceGroups/\',parameters(\'vNetRgName\'), \'/providers/\',\'Microsoft.Network/virtualNetworks/\', parameters(\'vNetName\'))]'| +//@[204:205) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + hubName: { +//@[36:43) Identifier |hubName| +//@[43:44) Colon |:| +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + value: '[split(parameters(\'hubResourceId\'),\'/\')[8]]' +//@[38:43) Identifier |value| +//@[43:44) Colon |:| +//@[45:94) StringComplete |'[split(parameters(\'hubResourceId\'),\'/\')[8]]'| +//@[94:95) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + outputs: {} +//@[28:35) Identifier |outputs| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + resourceGroup: '[parameters(\'vNetRgName\')]' +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:69) StringComplete |'[parameters(\'vNetRgName\')]'| +//@[69:70) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-VNET-HubSpoke' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:34) StringComplete |'Deploy-VNET-HubSpoke'| +//@[34:35) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies the creation of Azure Kubernetes Service non-private clusters' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:105) StringComplete |'This policy denies the creation of Azure Kubernetes Service non-private clusters'| +//@[105:106) NewLine |\n| + DisplayName: 'Public network access on AKS API should be disabled' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:74) StringComplete |'Public network access on AKS API should be disabled'| +//@[74:75) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Kubernetes' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Kubernetes'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.ContainerService/managedClusters' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:68) StringComplete |'Microsoft.ContainerService/managedClusters'| +//@[68:69) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.ContainerService/managedClusters/apiServerAccessProfile.enablePrivateCluster' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:111) StringComplete |'Microsoft.ContainerService/managedClusters/apiServerAccessProfile.enablePrivateCluster'| +//@[111:112) NewLine |\n| + notequals: 'true' +//@[16:25) Identifier |notequals| +//@[25:26) Colon |:| +//@[27:33) StringComplete |'true'| +//@[33:34) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-PublicEndpoint-Aks' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:37) StringComplete |'Deny-PublicEndpoint-Aks'| +//@[37:38) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Analysis Services to stream to a Log Analytics workspace when any Analysis Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:280) StringComplete |'Deploys the diagnostic settings for Analysis Services to stream to a Log Analytics workspace when any Analysis Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[280:281) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Analysis Services to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:98) StringComplete |'Deploy Diagnostic Settings for Analysis Services to Log Analytics workspace'| +//@[98:99) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.AnalysisServices/servers' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:56) StringComplete |'Microsoft.AnalysisServices/servers'| +//@[56:57) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.AnalysisServices/servers/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:95) StringComplete |'Microsoft.AnalysisServices/servers/providers/diagnosticSettings'| +//@[95:96) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Engine' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:48) StringComplete |'Engine'| +//@[48:49) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Service' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:49) StringComplete |'Service'| +//@[49:50) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-AnalysisService' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:48) StringComplete |'Deploy-Diagnostics-AnalysisService'| +//@[48:49) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for API Management to stream to a Log Analytics workspace when any API Management which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:274) StringComplete |'Deploys the diagnostic settings for API Management to stream to a Log Analytics workspace when any API Management which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[274:275) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for API Management to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:95) StringComplete |'Deploy Diagnostic Settings for API Management to Log Analytics workspace'| +//@[95:96) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.ApiManagement/service' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:53) StringComplete |'Microsoft.ApiManagement/service'| +//@[53:54) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.ApiManagement/service/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:92) StringComplete |'Microsoft.ApiManagement/service/providers/diagnosticSettings'| +//@[92:93) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Gateway Requests' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:58) StringComplete |'Gateway Requests'| +//@[58:59) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Capacity' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:50) StringComplete |'Capacity'| +//@[50:51) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'EventHub Events' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:57) StringComplete |'EventHub Events'| +//@[57:58) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Network Status' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:56) StringComplete |'Network Status'| +//@[56:57) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'GatewayLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:53) StringComplete |'GatewayLogs'| +//@[53:54) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-APIMgmt' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:40) StringComplete |'Deploy-Diagnostics-APIMgmt'| +//@[40:41) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy enables you to restrict that Application Gateways is always deployed with WAF enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:120) StringComplete |'This policy enables you to restrict that Application Gateways is always deployed with WAF enabled'| +//@[120:121) NewLine |\n| + DisplayName: 'Application Gateway should be deployed with WAF enabled' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:78) StringComplete |'Application Gateway should be deployed with WAF enabled'| +//@[78:79) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Network/applicationGateways' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:63) StringComplete |'Microsoft.Network/applicationGateways'| +//@[63:64) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.Network/applicationGateways/sku.name' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:71) StringComplete |'Microsoft.Network/applicationGateways/sku.name'| +//@[71:72) NewLine |\n| + notequals: 'WAF_v2' +//@[16:25) Identifier |notequals| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'WAF_v2'| +//@[35:36) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-AppGW-Without-WAF' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:36) StringComplete |'Deny-AppGW-Without-WAF'| +//@[36:37) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Application Gateway to stream to a Log Analytics workspace when any Application Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:284) StringComplete |'Deploys the diagnostic settings for Application Gateway to stream to a Log Analytics workspace when any Application Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[284:285) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Application Gateway to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:100) StringComplete |'Deploy Diagnostic Settings for Application Gateway to Log Analytics workspace'| +//@[100:101) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/applicationGateways' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Network/applicationGateways'| +//@[59:60) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Network/applicationGateways/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:98) StringComplete |'Microsoft.Network/applicationGateways/providers/diagnosticSettings'| +//@[98:99) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ApplicationGatewayAccessLog' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:69) StringComplete |'ApplicationGatewayAccessLog'| +//@[69:70) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ApplicationGatewayPerformanceLog' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:74) StringComplete |'ApplicationGatewayPerformanceLog'| +//@[74:75) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ApplicationGatewayFirewallLog' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:71) StringComplete |'ApplicationGatewayFirewallLog'| +//@[71:72) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-ApplicationGateway' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:51) StringComplete |'Deploy-Diagnostics-ApplicationGateway'| +//@[51:52) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for App Service Plan to stream to a Log Analytics workspace when any App Service Plan which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:278) StringComplete |'Deploys the diagnostic settings for App Service Plan to stream to a Log Analytics workspace when any App Service Plan which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[278:279) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for App Service Plan to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:97) StringComplete |'Deploy Diagnostic Settings for App Service Plan to Log Analytics workspace'| +//@[97:98) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Web/serverfarms' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:47) StringComplete |'Microsoft.Web/serverfarms'| +//@[47:48) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Web/serverfarms/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:86) StringComplete |'Microsoft.Web/serverfarms/providers/diagnosticSettings'| +//@[86:87) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [] +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) RightSquare |]| +//@[34:35) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-WebServerFarm' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:46) StringComplete |'Deploy-Diagnostics-WebServerFarm'| +//@[46:47) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Web App to stream to a Log Analytics workspace when any Web App which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:260) StringComplete |'Deploys the diagnostic settings for Web App to stream to a Log Analytics workspace when any Web App which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[260:261) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for App Service to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:92) StringComplete |'Deploy Diagnostic Settings for App Service to Log Analytics workspace'| +//@[92:93) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Web/sites' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:45) StringComplete |'Microsoft.Web/sites'| +//@[45:46) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + value: '[field(\'kind\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:42) StringComplete |'[field(\'kind\')]'| +//@[42:43) NewLine |\n| + notContains: 'functionapp' +//@[16:27) Identifier |notContains| +//@[27:28) Colon |:| +//@[29:42) StringComplete |'functionapp'| +//@[42:43) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Web/sites/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:80) StringComplete |'Microsoft.Web/sites/providers/diagnosticSettings'| +//@[80:81) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AppServiceAntivirusScanAuditLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:74) StringComplete |'AppServiceAntivirusScanAuditLogs'| +//@[74:75) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AppServiceHTTPLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:60) StringComplete |'AppServiceHTTPLogs'| +//@[60:61) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AppServiceConsoleLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:63) StringComplete |'AppServiceConsoleLogs'| +//@[63:64) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AppServiceHTTPLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:60) StringComplete |'AppServiceHTTPLogs'| +//@[60:61) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AppServiceAppLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:59) StringComplete |'AppServiceAppLogs'| +//@[59:60) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AppServiceFileAuditLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:65) StringComplete |'AppServiceFileAuditLogs'| +//@[65:66) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AppServiceAuditLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:61) StringComplete |'AppServiceAuditLogs'| +//@[61:62) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AppServiceIPSecAuditLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:66) StringComplete |'AppServiceIPSecAuditLogs'| +//@[66:67) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AppServicePlatformLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:64) StringComplete |'AppServicePlatformLogs'| +//@[64:65) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-Website' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:40) StringComplete |'Deploy-Diagnostics-Website'| +//@[40:41) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the Azure Defender settings in Azure Security Center for the specific services.' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:112) StringComplete |'Deploys the Azure Defender settings in Azure Security Center for the specific services.'| +//@[112:113) NewLine |\n| + DisplayName: 'Deploy Azure Defender settings in Azure Security Center.' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:79) StringComplete |'Deploy Azure Defender settings in Azure Security Center.'| +//@[79:80) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + pricingTierVMs: { +//@[10:24) Identifier |pricingTierVMs| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'pricingTierVMs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'pricingTierVMs'| +//@[43:44) NewLine |\n| + description: null +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Standard' +//@[14:24) StringComplete |'Standard'| +//@[24:25) NewLine |\n| + 'Free' +//@[14:20) StringComplete |'Free'| +//@[20:21) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Standard' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:36) StringComplete |'Standard'| +//@[36:37) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + pricingTierSqlServers: { +//@[10:31) Identifier |pricingTierSqlServers| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'pricingTierSqlServers' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:50) StringComplete |'pricingTierSqlServers'| +//@[50:51) NewLine |\n| + description: null +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Standard' +//@[14:24) StringComplete |'Standard'| +//@[24:25) NewLine |\n| + 'Free' +//@[14:20) StringComplete |'Free'| +//@[20:21) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Standard' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:36) StringComplete |'Standard'| +//@[36:37) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + pricingTierAppServices: { +//@[10:32) Identifier |pricingTierAppServices| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'pricingTierAppServices' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:51) StringComplete |'pricingTierAppServices'| +//@[51:52) NewLine |\n| + description: null +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Standard' +//@[14:24) StringComplete |'Standard'| +//@[24:25) NewLine |\n| + 'Free' +//@[14:20) StringComplete |'Free'| +//@[20:21) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Standard' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:36) StringComplete |'Standard'| +//@[36:37) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + pricingTierStorageAccounts: { +//@[10:36) Identifier |pricingTierStorageAccounts| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'pricingTierStorageAccounts' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:55) StringComplete |'pricingTierStorageAccounts'| +//@[55:56) NewLine |\n| + description: null +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Standard' +//@[14:24) StringComplete |'Standard'| +//@[24:25) NewLine |\n| + 'Free' +//@[14:20) StringComplete |'Free'| +//@[20:21) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Standard' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:36) StringComplete |'Standard'| +//@[36:37) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + pricingTierContainerRegistry: { +//@[10:38) Identifier |pricingTierContainerRegistry| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'pricingTierContainerRegistry' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:57) StringComplete |'pricingTierContainerRegistry'| +//@[57:58) NewLine |\n| + description: null +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Standard' +//@[14:24) StringComplete |'Standard'| +//@[24:25) NewLine |\n| + 'Free' +//@[14:20) StringComplete |'Free'| +//@[20:21) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Standard' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:36) StringComplete |'Standard'| +//@[36:37) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + pricingTierKeyVaults: { +//@[10:30) Identifier |pricingTierKeyVaults| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'pricingTierKeyVaults' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:49) StringComplete |'pricingTierKeyVaults'| +//@[49:50) NewLine |\n| + description: null +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Standard' +//@[14:24) StringComplete |'Standard'| +//@[24:25) NewLine |\n| + 'Free' +//@[14:20) StringComplete |'Free'| +//@[20:21) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Standard' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:36) StringComplete |'Standard'| +//@[36:37) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + pricingTierKubernetesService: { +//@[10:38) Identifier |pricingTierKubernetesService| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'pricingTierKubernetesService' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:57) StringComplete |'pricingTierKubernetesService'| +//@[57:58) NewLine |\n| + description: null +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Standard' +//@[14:24) StringComplete |'Standard'| +//@[24:25) NewLine |\n| + 'Free' +//@[14:20) StringComplete |'Free'| +//@[20:21) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Standard' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:36) StringComplete |'Standard'| +//@[36:37) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + pricingTierDns: { +//@[10:24) Identifier |pricingTierDns| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'pricingTierDns' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'pricingTierDns'| +//@[43:44) NewLine |\n| + description: null +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Standard' +//@[14:24) StringComplete |'Standard'| +//@[24:25) NewLine |\n| + 'Free' +//@[14:20) StringComplete |'Free'| +//@[20:21) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Standard' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:36) StringComplete |'Standard'| +//@[36:37) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + pricingTierArm: { +//@[10:24) Identifier |pricingTierArm| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'pricingTierArm' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'pricingTierArm'| +//@[43:44) NewLine |\n| + description: null +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Standard' +//@[14:24) StringComplete |'Standard'| +//@[24:25) NewLine |\n| + 'Free' +//@[14:20) StringComplete |'Free'| +//@[20:21) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Standard' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:36) StringComplete |'Standard'| +//@[36:37) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Security Center' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:37) StringComplete |'Security Center'| +//@[37:38) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Resources/subscriptions' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringComplete |'Microsoft.Resources/subscriptions'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Security/pricings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:49) StringComplete |'Microsoft.Security/pricings'| +//@[49:50) NewLine |\n| + deploymentScope: 'subscription' +//@[14:29) Identifier |deploymentScope| +//@[29:30) Colon |:| +//@[31:45) StringComplete |'subscription'| +//@[45:46) NewLine |\n| + existenceScope: 'subscription' +//@[14:28) Identifier |existenceScope| +//@[28:29) Colon |:| +//@[30:44) StringComplete |'subscription'| +//@[44:45) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/fb1c8493-542b-48eb-b624-b4c8fea62acd' +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/fb1c8493-542b-48eb-b624-b4c8fea62acd'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Security/pricings/pricingTier' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:68) StringComplete |'Microsoft.Security/pricings/pricingTier'| +//@[68:69) NewLine |\n| + equals: 'Standard' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:38) StringComplete |'Standard'| +//@[38:39) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'type' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:33) StringComplete |'type'| +//@[33:34) NewLine |\n| + equals: 'Microsoft.Security/pricings' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:57) StringComplete |'Microsoft.Security/pricings'| +//@[57:58) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + location: 'northeurope' +//@[16:24) Identifier |location| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'northeurope'| +//@[39:40) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + pricingTierVMs: { +//@[20:34) Identifier |pricingTierVMs| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'pricingTierVMs\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'pricingTierVMs\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + pricingTierSqlServers: { +//@[20:41) Identifier |pricingTierSqlServers| +//@[41:42) Colon |:| +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + value: '[parameters(\'pricingTierSqlServers\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:70) StringComplete |'[parameters(\'pricingTierSqlServers\')]'| +//@[70:71) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + pricingTierAppServices: { +//@[20:42) Identifier |pricingTierAppServices| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + value: '[parameters(\'pricingTierAppServices\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:71) StringComplete |'[parameters(\'pricingTierAppServices\')]'| +//@[71:72) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + pricingTierStorageAccounts: { +//@[20:46) Identifier |pricingTierStorageAccounts| +//@[46:47) Colon |:| +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + value: '[parameters(\'pricingTierStorageAccounts\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:75) StringComplete |'[parameters(\'pricingTierStorageAccounts\')]'| +//@[75:76) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + pricingTierContainerRegistry: { +//@[20:48) Identifier |pricingTierContainerRegistry| +//@[48:49) Colon |:| +//@[50:51) LeftBrace |{| +//@[51:52) NewLine |\n| + value: '[parameters(\'pricingTierContainerRegistry\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:77) StringComplete |'[parameters(\'pricingTierContainerRegistry\')]'| +//@[77:78) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + pricingTierKeyVaults: { +//@[20:40) Identifier |pricingTierKeyVaults| +//@[40:41) Colon |:| +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + value: '[parameters(\'pricingTierKeyVaults\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:69) StringComplete |'[parameters(\'pricingTierKeyVaults\')]'| +//@[69:70) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + pricingTierKubernetesService: { +//@[20:48) Identifier |pricingTierKubernetesService| +//@[48:49) Colon |:| +//@[50:51) LeftBrace |{| +//@[51:52) NewLine |\n| + value: '[parameters(\'pricingTierKubernetesService\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:77) StringComplete |'[parameters(\'pricingTierKubernetesService\')]'| +//@[77:78) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + pricingTierDns: { +//@[20:34) Identifier |pricingTierDns| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'pricingTierDns\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'pricingTierDns\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + pricingTierArm: { +//@[20:34) Identifier |pricingTierArm| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'pricingTierArm\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'pricingTierArm\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:112) StringComplete |'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[112:113) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + pricingTierVMs: { +//@[22:36) Identifier |pricingTierVMs| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'pricingTierVMs' +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:55) StringComplete |'pricingTierVMs'| +//@[55:56) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + pricingTierSqlServers: { +//@[22:43) Identifier |pricingTierSqlServers| +//@[43:44) Colon |:| +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'pricingTierSqlServers' +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:62) StringComplete |'pricingTierSqlServers'| +//@[62:63) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + pricingTierAppServices: { +//@[22:44) Identifier |pricingTierAppServices| +//@[44:45) Colon |:| +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'pricingTierAppServices' +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:63) StringComplete |'pricingTierAppServices'| +//@[63:64) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + pricingTierStorageAccounts: { +//@[22:48) Identifier |pricingTierStorageAccounts| +//@[48:49) Colon |:| +//@[50:51) LeftBrace |{| +//@[51:52) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'pricingTierStorageAccounts' +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:67) StringComplete |'pricingTierStorageAccounts'| +//@[67:68) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + pricingTierContainerRegistry: { +//@[22:50) Identifier |pricingTierContainerRegistry| +//@[50:51) Colon |:| +//@[52:53) LeftBrace |{| +//@[53:54) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'ContainerRegistry' +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:58) StringComplete |'ContainerRegistry'| +//@[58:59) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + pricingTierKeyVaults: { +//@[22:42) Identifier |pricingTierKeyVaults| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'KeyVaults' +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:50) StringComplete |'KeyVaults'| +//@[50:51) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + pricingTierKubernetesService: { +//@[22:50) Identifier |pricingTierKubernetesService| +//@[50:51) Colon |:| +//@[52:53) LeftBrace |{| +//@[53:54) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'KubernetesService' +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:58) StringComplete |'KubernetesService'| +//@[58:59) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + pricingTierDns: { +//@[22:36) Identifier |pricingTierDns| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'KubernetesService' +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:58) StringComplete |'KubernetesService'| +//@[58:59) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + pricingTierArm: { +//@[22:36) Identifier |pricingTierArm| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'KubernetesService' +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:58) StringComplete |'KubernetesService'| +//@[58:59) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Security/pricings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:59) StringComplete |'Microsoft.Security/pricings'| +//@[59:60) NewLine |\n| + apiVersion: '2018-06-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2018-06-01'| +//@[48:49) NewLine |\n| + name: 'VirtualMachines' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:47) StringComplete |'VirtualMachines'| +//@[47:48) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + pricingTier: '[parameters(\'pricingTierVMs\')]' +//@[26:37) Identifier |pricingTier| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'pricingTierVMs\')]'| +//@[73:74) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Security/pricings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:59) StringComplete |'Microsoft.Security/pricings'| +//@[59:60) NewLine |\n| + apiVersion: '2018-06-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2018-06-01'| +//@[48:49) NewLine |\n| + name: 'StorageAccounts' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:47) StringComplete |'StorageAccounts'| +//@[47:48) NewLine |\n| + dependsOn: [ +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(\'Microsoft.Security/pricings/VirtualMachines\')]' +//@[26:85) StringComplete |'[concat(\'Microsoft.Security/pricings/VirtualMachines\')]'| +//@[85:86) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + pricingTier: '[parameters(\'pricingTierStorageAccounts\')]' +//@[26:37) Identifier |pricingTier| +//@[37:38) Colon |:| +//@[39:85) StringComplete |'[parameters(\'pricingTierStorageAccounts\')]'| +//@[85:86) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Security/pricings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:59) StringComplete |'Microsoft.Security/pricings'| +//@[59:60) NewLine |\n| + apiVersion: '2018-06-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2018-06-01'| +//@[48:49) NewLine |\n| + name: 'AppServices' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:43) StringComplete |'AppServices'| +//@[43:44) NewLine |\n| + dependsOn: [ +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(\'Microsoft.Security/pricings/StorageAccounts\')]' +//@[26:85) StringComplete |'[concat(\'Microsoft.Security/pricings/StorageAccounts\')]'| +//@[85:86) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + pricingTier: '[parameters(\'pricingTierAppServices\')]' +//@[26:37) Identifier |pricingTier| +//@[37:38) Colon |:| +//@[39:81) StringComplete |'[parameters(\'pricingTierAppServices\')]'| +//@[81:82) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Security/pricings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:59) StringComplete |'Microsoft.Security/pricings'| +//@[59:60) NewLine |\n| + apiVersion: '2018-06-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2018-06-01'| +//@[48:49) NewLine |\n| + name: 'SqlServers' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:42) StringComplete |'SqlServers'| +//@[42:43) NewLine |\n| + dependsOn: [ +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(\'Microsoft.Security/pricings/AppServices\')]' +//@[26:81) StringComplete |'[concat(\'Microsoft.Security/pricings/AppServices\')]'| +//@[81:82) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + pricingTier: '[parameters(\'pricingTierSqlServers\')]' +//@[26:37) Identifier |pricingTier| +//@[37:38) Colon |:| +//@[39:80) StringComplete |'[parameters(\'pricingTierSqlServers\')]'| +//@[80:81) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Security/pricings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:59) StringComplete |'Microsoft.Security/pricings'| +//@[59:60) NewLine |\n| + apiVersion: '2018-06-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2018-06-01'| +//@[48:49) NewLine |\n| + name: 'KeyVaults' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:41) StringComplete |'KeyVaults'| +//@[41:42) NewLine |\n| + dependsOn: [ +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(\'Microsoft.Security/pricings/SqlServers\')]' +//@[26:80) StringComplete |'[concat(\'Microsoft.Security/pricings/SqlServers\')]'| +//@[80:81) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + pricingTier: '[parameters(\'pricingTierKeyVaults\')]' +//@[26:37) Identifier |pricingTier| +//@[37:38) Colon |:| +//@[39:79) StringComplete |'[parameters(\'pricingTierKeyVaults\')]'| +//@[79:80) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Security/pricings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:59) StringComplete |'Microsoft.Security/pricings'| +//@[59:60) NewLine |\n| + apiVersion: '2018-06-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2018-06-01'| +//@[48:49) NewLine |\n| + name: 'KubernetesService' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:49) StringComplete |'KubernetesService'| +//@[49:50) NewLine |\n| + dependsOn: [ +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(\'Microsoft.Security/pricings/KeyVaults\')]' +//@[26:79) StringComplete |'[concat(\'Microsoft.Security/pricings/KeyVaults\')]'| +//@[79:80) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + pricingTier: '[parameters(\'pricingTierKubernetesService\')]' +//@[26:37) Identifier |pricingTier| +//@[37:38) Colon |:| +//@[39:87) StringComplete |'[parameters(\'pricingTierKubernetesService\')]'| +//@[87:88) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Security/pricings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:59) StringComplete |'Microsoft.Security/pricings'| +//@[59:60) NewLine |\n| + apiVersion: '2018-06-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2018-06-01'| +//@[48:49) NewLine |\n| + name: 'ContainerRegistry' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:49) StringComplete |'ContainerRegistry'| +//@[49:50) NewLine |\n| + dependsOn: [ +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(\'Microsoft.Security/pricings/KubernetesService\')]' +//@[26:87) StringComplete |'[concat(\'Microsoft.Security/pricings/KubernetesService\')]'| +//@[87:88) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + pricingTier: '[parameters(\'pricingTierContainerRegistry\')]' +//@[26:37) Identifier |pricingTier| +//@[37:38) Colon |:| +//@[39:87) StringComplete |'[parameters(\'pricingTierContainerRegistry\')]'| +//@[87:88) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Security/pricings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:59) StringComplete |'Microsoft.Security/pricings'| +//@[59:60) NewLine |\n| + apiVersion: '2018-06-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2018-06-01'| +//@[48:49) NewLine |\n| + name: 'Dns' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:35) StringComplete |'Dns'| +//@[35:36) NewLine |\n| + dependsOn: [ +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(\'Microsoft.Security/pricings/ContainerRegistry\')]' +//@[26:87) StringComplete |'[concat(\'Microsoft.Security/pricings/ContainerRegistry\')]'| +//@[87:88) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + pricingTier: '[parameters(\'pricingTierDns\')]' +//@[26:37) Identifier |pricingTier| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'pricingTierDns\')]'| +//@[73:74) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Security/pricings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:59) StringComplete |'Microsoft.Security/pricings'| +//@[59:60) NewLine |\n| + apiVersion: '2018-06-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2018-06-01'| +//@[48:49) NewLine |\n| + name: 'Arm' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:35) StringComplete |'Arm'| +//@[35:36) NewLine |\n| + dependsOn: [ +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(\'Microsoft.Security/pricings/Dns\')]' +//@[26:73) StringComplete |'[concat(\'Microsoft.Security/pricings/Dns\')]'| +//@[73:74) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + pricingTier: '[parameters(\'pricingTierArm\')]' +//@[26:37) Identifier |pricingTier| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'pricingTierArm\')]'| +//@[73:74) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-ASC-Standard' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:33) StringComplete |'Deploy-ASC-Standard'| +//@[33:34) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies the creation of child resources on the Automation Account' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:99) StringComplete |'This policy denies the creation of child resources on the Automation Account'| +//@[99:100) NewLine |\n| + DisplayName: 'No child resources in Automation Account' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:63) StringComplete |'No child resources in Automation Account'| +//@[63:64) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Automation' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Automation'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + in: [ +//@[16:18) Identifier |in| +//@[18:19) Colon |:| +//@[20:21) LeftSquare |[| +//@[21:22) NewLine |\n| + 'Microsoft.Automation/automationAccounts/runbooks' +//@[18:68) StringComplete |'Microsoft.Automation/automationAccounts/runbooks'| +//@[68:69) NewLine |\n| + 'Microsoft.Automation/automationAccounts/variables' +//@[18:69) StringComplete |'Microsoft.Automation/automationAccounts/variables'| +//@[69:70) NewLine |\n| + 'Microsoft.Automation/automationAccounts/modules' +//@[18:67) StringComplete |'Microsoft.Automation/automationAccounts/modules'| +//@[67:68) NewLine |\n| + 'Microsoft.Automation/automationAccounts/credentials' +//@[18:71) StringComplete |'Microsoft.Automation/automationAccounts/credentials'| +//@[71:72) NewLine |\n| + 'Microsoft.Automation/automationAccounts/connections' +//@[18:71) StringComplete |'Microsoft.Automation/automationAccounts/connections'| +//@[71:72) NewLine |\n| + 'Microsoft.Automation/automationAccount/certificates' +//@[18:71) StringComplete |'Microsoft.Automation/automationAccount/certificates'| +//@[71:72) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-AA-child-resources' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:37) StringComplete |'Deny-AA-child-resources'| +//@[37:38) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Automation to stream to a Log Analytics workspace when any Automation which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:266) StringComplete |'Deploys the diagnostic settings for Automation to stream to a Log Analytics workspace when any Automation which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[266:267) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Automation to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:91) StringComplete |'Deploy Diagnostic Settings for Automation to Log Analytics workspace'| +//@[91:92) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Automation/automationAccounts' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:61) StringComplete |'Microsoft.Automation/automationAccounts'| +//@[61:62) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Automation/automationAccounts/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:100) StringComplete |'Microsoft.Automation/automationAccounts/providers/diagnosticSettings'| +//@[100:101) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'JobLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:49) StringComplete |'JobLogs'| +//@[49:50) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'JobStreams' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'JobStreams'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DscNodeStatus' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:55) StringComplete |'DscNodeStatus'| +//@[55:56) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-AA' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:35) StringComplete |'Deploy-Diagnostics-AA'| +//@[35:36) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + displayName: 'RDP access from the Internet should be blocked' +//@[8:19) Identifier |displayName| +//@[19:20) Colon |:| +//@[21:69) StringComplete |'RDP access from the Internet should be blocked'| +//@[69:70) NewLine |\n| + description: 'This policy denies any network security rule that allows RDP access from Internet' +//@[8:19) Identifier |description| +//@[19:20) Colon |:| +//@[21:104) StringComplete |'This policy denies any network security rule that allows RDP access from Internet'| +//@[104:105) NewLine |\n| + mode: 'All' +//@[8:12) Identifier |mode| +//@[12:13) Colon |:| +//@[14:19) StringComplete |'All'| +//@[19:20) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + parameters: { +//@[8:18) Identifier |parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + policyRule: { +//@[8:18) Identifier |policyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Network/networkSecurityGroups/securityRules' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:79) StringComplete |'Microsoft.Network/networkSecurityGroups/securityRules'| +//@[79:80) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Network/networkSecurityGroups/securityRules/access' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:89) StringComplete |'Microsoft.Network/networkSecurityGroups/securityRules/access'| +//@[89:90) NewLine |\n| + equals: 'Allow' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:35) StringComplete |'Allow'| +//@[35:36) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Network/networkSecurityGroups/securityRules/direction' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:92) StringComplete |'Microsoft.Network/networkSecurityGroups/securityRules/direction'| +//@[92:93) NewLine |\n| + equals: 'Inbound' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:37) StringComplete |'Inbound'| +//@[37:38) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + anyOf: [ +//@[20:25) Identifier |anyOf| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange' +//@[24:29) Identifier |field| +//@[29:30) Colon |:| +//@[31:107) StringComplete |'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange'| +//@[107:108) NewLine |\n| + equals: '*' +//@[24:30) Identifier |equals| +//@[30:31) Colon |:| +//@[32:35) StringComplete |'*'| +//@[35:36) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange' +//@[24:29) Identifier |field| +//@[29:30) Colon |:| +//@[31:107) StringComplete |'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange'| +//@[107:108) NewLine |\n| + equals: '3389' +//@[24:30) Identifier |equals| +//@[30:31) Colon |:| +//@[32:38) StringComplete |'3389'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[if(and(not(empty(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'))), contains(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'),\'-\')), and(lessOrEquals(int(first(split(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'), \'-\'))),3389),greaterOrEquals(int(last(split(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'), \'-\'))),3389)), \'false\')]' +//@[24:29) Identifier |value| +//@[29:30) Colon |:| +//@[31:525) StringComplete |'[if(and(not(empty(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'))), contains(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'),\'-\')), and(lessOrEquals(int(first(split(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'), \'-\'))),3389),greaterOrEquals(int(last(split(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRange\'), \'-\'))),3389)), \'false\')]'| +//@[525:526) NewLine |\n| + equals: 'true' +//@[24:30) Identifier |equals| +//@[30:31) Colon |:| +//@[32:38) StringComplete |'true'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + count: { +//@[24:29) Identifier |count| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) NewLine |\n| + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]' +//@[26:31) Identifier |field| +//@[31:32) Colon |:| +//@[33:113) StringComplete |'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]'| +//@[113:114) NewLine |\n| + where: { +//@[26:31) Identifier |where| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[if(and(not(empty(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')))), contains(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')),\'-\')), and(lessOrEquals(int(first(split(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')), \'-\'))),3389),greaterOrEquals(int(last(split(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')), \'-\'))),3389)) , \'false\')]' +//@[28:33) Identifier |value| +//@[33:34) Colon |:| +//@[35:574) StringComplete |'[if(and(not(empty(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')))), contains(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')),\'-\')), and(lessOrEquals(int(first(split(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')), \'-\'))),3389),greaterOrEquals(int(last(split(first(field(\'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]\')), \'-\'))),3389)) , \'false\')]'| +//@[574:575) NewLine |\n| + equals: 'true' +//@[28:34) Identifier |equals| +//@[34:35) Colon |:| +//@[36:42) StringComplete |'true'| +//@[42:43) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + greater: 0 +//@[24:31) Identifier |greater| +//@[31:32) Colon |:| +//@[33:34) Integer |0| +//@[34:35) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + not: { +//@[24:27) Identifier |not| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) NewLine |\n| + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]' +//@[26:31) Identifier |field| +//@[31:32) Colon |:| +//@[33:113) StringComplete |'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]'| +//@[113:114) NewLine |\n| + notEquals: '*' +//@[26:35) Identifier |notEquals| +//@[35:36) Colon |:| +//@[37:40) StringComplete |'*'| +//@[40:41) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + not: { +//@[24:27) Identifier |not| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) NewLine |\n| + field: 'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]' +//@[26:31) Identifier |field| +//@[31:32) Colon |:| +//@[33:113) StringComplete |'Microsoft.Network/networkSecurityGroups/securityRules/destinationPortRanges[*]'| +//@[113:114) NewLine |\n| + notEquals: '3389' +//@[26:35) Identifier |notEquals| +//@[35:36) Colon |:| +//@[37:43) StringComplete |'3389'| +//@[43:44) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + anyOf: [ +//@[20:25) Identifier |anyOf| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + field: 'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefix' +//@[24:29) Identifier |field| +//@[29:30) Colon |:| +//@[31:106) StringComplete |'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefix'| +//@[106:107) NewLine |\n| + equals: '*' +//@[24:30) Identifier |equals| +//@[30:31) Colon |:| +//@[32:35) StringComplete |'*'| +//@[35:36) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + field: 'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefix' +//@[24:29) Identifier |field| +//@[29:30) Colon |:| +//@[31:106) StringComplete |'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefix'| +//@[106:107) NewLine |\n| + equals: 'Internet' +//@[24:30) Identifier |equals| +//@[30:31) Colon |:| +//@[32:42) StringComplete |'Internet'| +//@[42:43) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + not: { +//@[24:27) Identifier |not| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) NewLine |\n| + field: 'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefixes[*]' +//@[26:31) Identifier |field| +//@[31:32) Colon |:| +//@[33:113) StringComplete |'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefixes[*]'| +//@[113:114) NewLine |\n| + notEquals: '*' +//@[26:35) Identifier |notEquals| +//@[35:36) Colon |:| +//@[37:40) StringComplete |'*'| +//@[40:41) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + not: { +//@[24:27) Identifier |not| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) NewLine |\n| + field: 'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefixes[*]' +//@[26:31) Identifier |field| +//@[31:32) Colon |:| +//@[33:113) StringComplete |'Microsoft.Network/networkSecurityGroups/securityRules/sourceAddressPrefixes[*]'| +//@[113:114) NewLine |\n| + notEquals: 'Internet' +//@[26:35) Identifier |notEquals| +//@[35:36) Colon |:| +//@[37:47) StringComplete |'Internet'| +//@[47:48) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-RDP-From-Internet' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:36) StringComplete |'Deny-RDP-From-Internet'| +//@[36:37) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Batch to stream to a Log Analytics workspace when any Batch which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:256) StringComplete |'Deploys the diagnostic settings for Batch to stream to a Log Analytics workspace when any Batch which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[256:257) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Batch to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:86) StringComplete |'Deploy Diagnostic Settings for Batch to Log Analytics workspace'| +//@[86:87) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Batch/batchAccounts' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:51) StringComplete |'Microsoft.Batch/batchAccounts'| +//@[51:52) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Batch/batchAccounts/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:90) StringComplete |'Microsoft.Batch/batchAccounts/providers/diagnosticSettings'| +//@[90:91) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ServiceLog' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'ServiceLog'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-Batch' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:38) StringComplete |'Deploy-Diagnostics-Batch'| +//@[38:39) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for CDN Endpoint to stream to a Log Analytics workspace when any CDN Endpoint which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:270) StringComplete |'Deploys the diagnostic settings for CDN Endpoint to stream to a Log Analytics workspace when any CDN Endpoint which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[270:271) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for CDN Endpoint to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:93) StringComplete |'Deploy Diagnostic Settings for CDN Endpoint to Log Analytics workspace'| +//@[93:94) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Cdn/profiles/endpoints' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:54) StringComplete |'Microsoft.Cdn/profiles/endpoints'| +//@[54:55) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Cdn/profiles/endpoints/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:93) StringComplete |'Microsoft.Cdn/profiles/endpoints/providers/diagnosticSettings'| +//@[93:94) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [] +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'CoreAnalytics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:55) StringComplete |'CoreAnalytics'| +//@[55:56) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'fullName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'fullName\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-CDNEndpoints' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:45) StringComplete |'Deploy-Diagnostics-CDNEndpoints'| +//@[45:46) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Cognitive Services to stream to a Log Analytics workspace when any Cognitive Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:282) StringComplete |'Deploys the diagnostic settings for Cognitive Services to stream to a Log Analytics workspace when any Cognitive Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[282:283) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Cognitive Services to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:99) StringComplete |'Deploy Diagnostic Settings for Cognitive Services to Log Analytics workspace'| +//@[99:100) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.CognitiveServices/accounts' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:58) StringComplete |'Microsoft.CognitiveServices/accounts'| +//@[58:59) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.CognitiveServices/accounts/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:97) StringComplete |'Microsoft.CognitiveServices/accounts/providers/diagnosticSettings'| +//@[97:98) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Audit' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:47) StringComplete |'Audit'| +//@[47:48) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'RequestResponse' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:57) StringComplete |'RequestResponse'| +//@[57:58) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Trace' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:47) StringComplete |'Trace'| +//@[47:48) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-CognitiveServices' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:50) StringComplete |'Deploy-Diagnostics-CognitiveServices'| +//@[50:51) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Cosmos DB to stream to a Log Analytics workspace when any Cosmos DB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:264) StringComplete |'Deploys the diagnostic settings for Cosmos DB to stream to a Log Analytics workspace when any Cosmos DB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[264:265) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Cosmos DB to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:90) StringComplete |'Deploy Diagnostic Settings for Cosmos DB to Log Analytics workspace'| +//@[90:91) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.DocumentDB/databaseAccounts' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.DocumentDB/databaseAccounts'| +//@[59:60) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.DocumentDB/databaseAccounts/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:98) StringComplete |'Microsoft.DocumentDB/databaseAccounts/providers/diagnosticSettings'| +//@[98:99) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Requests' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:50) StringComplete |'Requests'| +//@[50:51) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DataPlaneRequests' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:59) StringComplete |'DataPlaneRequests'| +//@[59:60) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'MongoRequests' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:55) StringComplete |'MongoRequests'| +//@[55:56) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'QueryRuntimeStatistics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:64) StringComplete |'QueryRuntimeStatistics'| +//@[64:65) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'PartitionKeyStatistics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:64) StringComplete |'PartitionKeyStatistics'| +//@[64:65) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'PartitionKeyRUConsumption' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:67) StringComplete |'PartitionKeyRUConsumption'| +//@[67:68) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ControlPlaneRequests' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:62) StringComplete |'ControlPlaneRequests'| +//@[62:63) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'CassandraRequests' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:59) StringComplete |'CassandraRequests'| +//@[59:60) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'GremlinRequests' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:57) StringComplete |'GremlinRequests'| +//@[57:58) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-CosmosDB' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:41) StringComplete |'Deploy-Diagnostics-CosmosDB'| +//@[41:42) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies that Cosmos database accounts are created with out public network access is disabled.' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:129) StringComplete |'This policy denies that Cosmos database accounts are created with out public network access is disabled.'| +//@[129:130) NewLine |\n| + DisplayName: 'Public network access should be disabled for CosmosDB' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:76) StringComplete |'Public network access should be disabled for CosmosDB'| +//@[76:77) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'SQL' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:25) StringComplete |'SQL'| +//@[25:26) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.DocumentDB/databaseAccounts' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:63) StringComplete |'Microsoft.DocumentDB/databaseAccounts'| +//@[63:64) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.DocumentDB/databaseAccounts/publicNetworkAccess' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:82) StringComplete |'Microsoft.DocumentDB/databaseAccounts/publicNetworkAccess'| +//@[82:83) NewLine |\n| + notequals: 'Disabled' +//@[16:25) Identifier |notequals| +//@[25:26) Colon |:| +//@[27:37) StringComplete |'Disabled'| +//@[37:38) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-PublicEndpoint-CosmosDB' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:42) StringComplete |'Deny-PublicEndpoint-CosmosDB'| +//@[42:43) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Databricks to stream to a Log Analytics workspace when any Databricks which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:266) StringComplete |'Deploys the diagnostic settings for Databricks to stream to a Log Analytics workspace when any Databricks which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[266:267) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Databricks to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:91) StringComplete |'Deploy Diagnostic Settings for Databricks to Log Analytics workspace'| +//@[91:92) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Databricks/workspaces' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:53) StringComplete |'Microsoft.Databricks/workspaces'| +//@[53:54) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Databricks/workspaces/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:92) StringComplete |'Microsoft.Databricks/workspaces/providers/diagnosticSettings'| +//@[92:93) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'dbfs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:46) StringComplete |'dbfs'| +//@[46:47) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'clusters' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:50) StringComplete |'clusters'| +//@[50:51) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'accounts' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:50) StringComplete |'accounts'| +//@[50:51) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'jobs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:46) StringComplete |'jobs'| +//@[46:47) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'notebook' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:50) StringComplete |'notebook'| +//@[50:51) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ssh' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:45) StringComplete |'ssh'| +//@[45:46) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'workspace' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:51) StringComplete |'workspace'| +//@[51:52) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'secrets' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:49) StringComplete |'secrets'| +//@[49:50) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'sqlPermissions' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:56) StringComplete |'sqlPermissions'| +//@[56:57) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'instancePools' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:55) StringComplete |'instancePools'| +//@[55:56) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-Databricks' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:43) StringComplete |'Deploy-Diagnostics-Databricks'| +//@[43:44) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Data Factory to stream to a Log Analytics workspace when any Data Factory which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:270) StringComplete |'Deploys the diagnostic settings for Data Factory to stream to a Log Analytics workspace when any Data Factory which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[270:271) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Data Factory to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:93) StringComplete |'Deploy Diagnostic Settings for Data Factory to Log Analytics workspace'| +//@[93:94) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.DataFactory/factories' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:53) StringComplete |'Microsoft.DataFactory/factories'| +//@[53:54) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.DataFactory/factories/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:92) StringComplete |'Microsoft.DataFactory/factories/providers/diagnosticSettings'| +//@[92:93) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ActivityRuns' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:54) StringComplete |'ActivityRuns'| +//@[54:55) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'PipelineRuns' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:54) StringComplete |'PipelineRuns'| +//@[54:55) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'TriggerRuns' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:53) StringComplete |'TriggerRuns'| +//@[53:54) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'SSISPackageEventMessages' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:66) StringComplete |'SSISPackageEventMessages'| +//@[66:67) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'SSISPackageExecutableStatistics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:73) StringComplete |'SSISPackageExecutableStatistics'| +//@[73:74) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'SSISPackageEventMessageContext' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:72) StringComplete |'SSISPackageEventMessageContext'| +//@[72:73) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'SSISPackageExecutionComponentPhases' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:77) StringComplete |'SSISPackageExecutionComponentPhases'| +//@[77:78) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'SSISPackageExecutionDataStatistics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:76) StringComplete |'SSISPackageExecutionDataStatistics'| +//@[76:77) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'SSISIntegrationRuntimeLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:68) StringComplete |'SSISIntegrationRuntimeLogs'| +//@[68:69) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-DataFactory' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:44) StringComplete |'Deploy-Diagnostics-DataFactory'| +//@[44:45) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Data Lake Analytics to stream to a Log Analytics workspace when any Data Lake Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:284) StringComplete |'Deploys the diagnostic settings for Data Lake Analytics to stream to a Log Analytics workspace when any Data Lake Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[284:285) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Data Lake Analytics to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:100) StringComplete |'Deploy Diagnostic Settings for Data Lake Analytics to Log Analytics workspace'| +//@[100:101) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.DataLakeAnalytics/accounts' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:58) StringComplete |'Microsoft.DataLakeAnalytics/accounts'| +//@[58:59) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.DataLakeAnalytics/accounts/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:97) StringComplete |'Microsoft.DataLakeAnalytics/accounts/providers/diagnosticSettings'| +//@[97:98) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Audit' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:47) StringComplete |'Audit'| +//@[47:48) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Requests' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:50) StringComplete |'Requests'| +//@[50:51) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-DLAnalytics' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:44) StringComplete |'Deploy-Diagnostics-DLAnalytics'| +//@[44:45) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Azure Data Lake Store to stream to a Log Analytics workspace when anyAzure Data Lake Store which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:287) StringComplete |'Deploys the diagnostic settings for Azure Data Lake Store to stream to a Log Analytics workspace when anyAzure Data Lake Store which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[287:288) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Azure Data Lake Store to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:102) StringComplete |'Deploy Diagnostic Settings for Azure Data Lake Store to Log Analytics workspace'| +//@[102:103) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.DataLakeStore/accounts' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:54) StringComplete |'Microsoft.DataLakeStore/accounts'| +//@[54:55) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.DataLakeStore/accounts/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:93) StringComplete |'Microsoft.DataLakeStore/accounts/providers/diagnosticSettings'| +//@[93:94) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Audit' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:47) StringComplete |'Audit'| +//@[47:48) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Requests' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:50) StringComplete |'Requests'| +//@[50:51) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-DataLakeStore' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:46) StringComplete |'Deploy-Diagnostics-DataLakeStore'| +//@[46:47) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Blob Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:189) StringComplete |'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Blob Private Endpoint. Used enforce the configuration to a single Private DNS Zone. '| +//@[189:190) NewLine |\n| + DisplayName: 'Deploy DNS Zone Group for Storage-Blob Private Endpoint' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:78) StringComplete |'Deploy DNS Zone Group for Storage-Blob Private Endpoint'| +//@[78:79) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + privateDnsZoneId: { +//@[10:26) Identifier |privateDnsZoneId| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'privateDnsZoneId' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:45) StringComplete |'privateDnsZoneId'| +//@[45:46) NewLine |\n| + strongType: 'Microsoft.Network/privateDnsZones' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:61) StringComplete |'Microsoft.Network/privateDnsZones'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Network/privateEndpoints' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:60) StringComplete |'Microsoft.Network/privateEndpoints'| +//@[60:61) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + count: { +//@[16:21) Identifier |count| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' +//@[18:23) Identifier |field| +//@[23:24) Colon |:| +//@[25:106) StringComplete |'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]'| +//@[106:107) NewLine |\n| + where: { +//@[18:23) Identifier |where| +//@[23:24) Colon |:| +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]'| +//@[108:109) NewLine |\n| + equals: 'blob' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'blob'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + greaterOrEquals: 1 +//@[16:31) Identifier |greaterOrEquals| +//@[31:32) Colon |:| +//@[33:34) Integer |1| +//@[34:35) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:77) StringComplete |'Microsoft.Network/privateEndpoints/privateDnsZoneGroups'| +//@[77:78) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:112) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[112:113) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + privateDnsZoneId: { +//@[22:38) Identifier |privateDnsZoneId| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + privateEndpointName: { +//@[22:41) Identifier |privateEndpointName| +//@[41:42) Colon |:| +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:100) StringComplete |'[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]'| +//@[100:101) NewLine |\n| + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:87) StringComplete |'Microsoft.Network/privateEndpoints/privateDnsZoneGroups'| +//@[87:88) NewLine |\n| + apiVersion: '2020-03-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2020-03-01'| +//@[48:49) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + privateDnsZoneConfigs: [ +//@[26:47) Identifier |privateDnsZoneConfigs| +//@[47:48) Colon |:| +//@[49:50) LeftSquare |[| +//@[50:51) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + name: 'storageBlob-privateDnsZone' +//@[30:34) Identifier |name| +//@[34:35) Colon |:| +//@[36:64) StringComplete |'storageBlob-privateDnsZone'| +//@[64:65) NewLine |\n| + properties: { +//@[30:40) Identifier |properties| +//@[40:41) Colon |:| +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' +//@[32:48) Identifier |privateDnsZoneId| +//@[48:49) Colon |:| +//@[50:86) StringComplete |'[parameters(\'privateDnsZoneId\')]'| +//@[86:87) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + privateDnsZoneId: { +//@[20:36) Identifier |privateDnsZoneId| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + value: '[parameters(\'privateDnsZoneId\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:65) StringComplete |'[parameters(\'privateDnsZoneId\')]'| +//@[65:66) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + privateEndpointName: { +//@[20:39) Identifier |privateEndpointName| +//@[39:40) Colon |:| +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-DNSZoneGroup-For-Blob-PrivateEndpoint' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:58) StringComplete |'Deploy-DNSZoneGroup-For-Blob-PrivateEndpoint'| +//@[58:59) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-File Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:189) StringComplete |'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-File Private Endpoint. Used enforce the configuration to a single Private DNS Zone. '| +//@[189:190) NewLine |\n| + DisplayName: 'Deploy DNS Zone Group for Storage-File Private Endpoint' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:79) StringComplete |'Deploy DNS Zone Group for Storage-File Private Endpoint'| +//@[79:80) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + privateDnsZoneId: { +//@[10:26) Identifier |privateDnsZoneId| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'privateDnsZoneId' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:45) StringComplete |'privateDnsZoneId'| +//@[45:46) NewLine |\n| + strongType: 'Microsoft.Network/privateDnsZones' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:61) StringComplete |'Microsoft.Network/privateDnsZones'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Network/privateEndpoints' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:60) StringComplete |'Microsoft.Network/privateEndpoints'| +//@[60:61) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + count: { +//@[16:21) Identifier |count| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' +//@[18:23) Identifier |field| +//@[23:24) Colon |:| +//@[25:106) StringComplete |'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]'| +//@[106:107) NewLine |\n| + where: { +//@[18:23) Identifier |where| +//@[23:24) Colon |:| +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]'| +//@[108:109) NewLine |\n| + equals: 'file' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'file'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + greaterOrEquals: 1 +//@[16:31) Identifier |greaterOrEquals| +//@[31:32) Colon |:| +//@[33:34) Integer |1| +//@[34:35) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:77) StringComplete |'Microsoft.Network/privateEndpoints/privateDnsZoneGroups'| +//@[77:78) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:112) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[112:113) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + privateDnsZoneId: { +//@[22:38) Identifier |privateDnsZoneId| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + privateEndpointName: { +//@[22:41) Identifier |privateEndpointName| +//@[41:42) Colon |:| +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:100) StringComplete |'[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]'| +//@[100:101) NewLine |\n| + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:87) StringComplete |'Microsoft.Network/privateEndpoints/privateDnsZoneGroups'| +//@[87:88) NewLine |\n| + apiVersion: '2020-03-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2020-03-01'| +//@[48:49) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + privateDnsZoneConfigs: [ +//@[26:47) Identifier |privateDnsZoneConfigs| +//@[47:48) Colon |:| +//@[49:50) LeftSquare |[| +//@[50:51) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + name: 'storageFile-privateDnsZone' +//@[30:34) Identifier |name| +//@[34:35) Colon |:| +//@[36:64) StringComplete |'storageFile-privateDnsZone'| +//@[64:65) NewLine |\n| + properties: { +//@[30:40) Identifier |properties| +//@[40:41) Colon |:| +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' +//@[32:48) Identifier |privateDnsZoneId| +//@[48:49) Colon |:| +//@[50:86) StringComplete |'[parameters(\'privateDnsZoneId\')]'| +//@[86:87) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + privateDnsZoneId: { +//@[20:36) Identifier |privateDnsZoneId| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + value: '[parameters(\'privateDnsZoneId\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:65) StringComplete |'[parameters(\'privateDnsZoneId\')]'| +//@[65:66) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + privateEndpointName: { +//@[20:39) Identifier |privateEndpointName| +//@[39:40) Colon |:| +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-DNSZoneGroup-For-File-PrivateEndpoint' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:58) StringComplete |'Deploy-DNSZoneGroup-For-File-PrivateEndpoint'| +//@[58:59) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Key Vault Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:186) StringComplete |'Deploys the configurations of a Private DNS Zone Group by a parameter for Key Vault Private Endpoint. Used enforce the configuration to a single Private DNS Zone. '| +//@[186:187) NewLine |\n| + DisplayName: 'Deploy DNS Zone Group for Key Vault Private Endpoint' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:76) StringComplete |'Deploy DNS Zone Group for Key Vault Private Endpoint'| +//@[76:77) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + privateDnsZoneId: { +//@[10:26) Identifier |privateDnsZoneId| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'privateDnsZoneId' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:45) StringComplete |'privateDnsZoneId'| +//@[45:46) NewLine |\n| + strongType: 'Microsoft.Network/privateDnsZones' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:61) StringComplete |'Microsoft.Network/privateDnsZones'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Network/privateEndpoints' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:60) StringComplete |'Microsoft.Network/privateEndpoints'| +//@[60:61) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + count: { +//@[16:21) Identifier |count| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' +//@[18:23) Identifier |field| +//@[23:24) Colon |:| +//@[25:106) StringComplete |'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]'| +//@[106:107) NewLine |\n| + where: { +//@[18:23) Identifier |where| +//@[23:24) Colon |:| +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]'| +//@[108:109) NewLine |\n| + equals: 'vault' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:35) StringComplete |'vault'| +//@[35:36) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + greaterOrEquals: 1 +//@[16:31) Identifier |greaterOrEquals| +//@[31:32) Colon |:| +//@[33:34) Integer |1| +//@[34:35) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:77) StringComplete |'Microsoft.Network/privateEndpoints/privateDnsZoneGroups'| +//@[77:78) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:112) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[112:113) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + privateDnsZoneId: { +//@[22:38) Identifier |privateDnsZoneId| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + privateEndpointName: { +//@[22:41) Identifier |privateEndpointName| +//@[41:42) Colon |:| +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:100) StringComplete |'[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]'| +//@[100:101) NewLine |\n| + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:87) StringComplete |'Microsoft.Network/privateEndpoints/privateDnsZoneGroups'| +//@[87:88) NewLine |\n| + apiVersion: '2020-03-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2020-03-01'| +//@[48:49) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + privateDnsZoneConfigs: [ +//@[26:47) Identifier |privateDnsZoneConfigs| +//@[47:48) Colon |:| +//@[49:50) LeftSquare |[| +//@[50:51) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + name: 'keyVault-privateDnsZone' +//@[30:34) Identifier |name| +//@[34:35) Colon |:| +//@[36:61) StringComplete |'keyVault-privateDnsZone'| +//@[61:62) NewLine |\n| + properties: { +//@[30:40) Identifier |properties| +//@[40:41) Colon |:| +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' +//@[32:48) Identifier |privateDnsZoneId| +//@[48:49) Colon |:| +//@[50:86) StringComplete |'[parameters(\'privateDnsZoneId\')]'| +//@[86:87) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + privateDnsZoneId: { +//@[20:36) Identifier |privateDnsZoneId| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + value: '[parameters(\'privateDnsZoneId\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:65) StringComplete |'[parameters(\'privateDnsZoneId\')]'| +//@[65:66) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + privateEndpointName: { +//@[20:39) Identifier |privateEndpointName| +//@[39:40) Colon |:| +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-DNSZoneGroup-For-KeyVault-PrivateEndpoint' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:62) StringComplete |'Deploy-DNSZoneGroup-For-KeyVault-PrivateEndpoint'| +//@[62:63) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Queue Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:190) StringComplete |'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Queue Private Endpoint. Used enforce the configuration to a single Private DNS Zone. '| +//@[190:191) NewLine |\n| + DisplayName: 'Deploy DNS Zone Group for Storage-Queue Private Endpoint' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:80) StringComplete |'Deploy DNS Zone Group for Storage-Queue Private Endpoint'| +//@[80:81) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + privateDnsZoneId: { +//@[10:26) Identifier |privateDnsZoneId| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'privateDnsZoneId' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:45) StringComplete |'privateDnsZoneId'| +//@[45:46) NewLine |\n| + strongType: 'Microsoft.Network/privateDnsZones' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:61) StringComplete |'Microsoft.Network/privateDnsZones'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Network/privateEndpoints' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:60) StringComplete |'Microsoft.Network/privateEndpoints'| +//@[60:61) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + count: { +//@[16:21) Identifier |count| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' +//@[18:23) Identifier |field| +//@[23:24) Colon |:| +//@[25:106) StringComplete |'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]'| +//@[106:107) NewLine |\n| + where: { +//@[18:23) Identifier |where| +//@[23:24) Colon |:| +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]'| +//@[108:109) NewLine |\n| + equals: 'queue' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:35) StringComplete |'queue'| +//@[35:36) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + greaterOrEquals: 1 +//@[16:31) Identifier |greaterOrEquals| +//@[31:32) Colon |:| +//@[33:34) Integer |1| +//@[34:35) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:77) StringComplete |'Microsoft.Network/privateEndpoints/privateDnsZoneGroups'| +//@[77:78) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:112) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[112:113) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + privateDnsZoneId: { +//@[22:38) Identifier |privateDnsZoneId| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + privateEndpointName: { +//@[22:41) Identifier |privateEndpointName| +//@[41:42) Colon |:| +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:100) StringComplete |'[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]'| +//@[100:101) NewLine |\n| + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:87) StringComplete |'Microsoft.Network/privateEndpoints/privateDnsZoneGroups'| +//@[87:88) NewLine |\n| + apiVersion: '2020-03-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2020-03-01'| +//@[48:49) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + privateDnsZoneConfigs: [ +//@[26:47) Identifier |privateDnsZoneConfigs| +//@[47:48) Colon |:| +//@[49:50) LeftSquare |[| +//@[50:51) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + name: 'storageQueue-privateDnsZone' +//@[30:34) Identifier |name| +//@[34:35) Colon |:| +//@[36:65) StringComplete |'storageQueue-privateDnsZone'| +//@[65:66) NewLine |\n| + properties: { +//@[30:40) Identifier |properties| +//@[40:41) Colon |:| +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' +//@[32:48) Identifier |privateDnsZoneId| +//@[48:49) Colon |:| +//@[50:86) StringComplete |'[parameters(\'privateDnsZoneId\')]'| +//@[86:87) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + privateDnsZoneId: { +//@[20:36) Identifier |privateDnsZoneId| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + value: '[parameters(\'privateDnsZoneId\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:65) StringComplete |'[parameters(\'privateDnsZoneId\')]'| +//@[65:66) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + privateEndpointName: { +//@[20:39) Identifier |privateEndpointName| +//@[39:40) Colon |:| +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-DNSZoneGroup-For-Queue-PrivateEndpoint' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:59) StringComplete |'Deploy-DNSZoneGroup-For-Queue-PrivateEndpoint'| +//@[59:60) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for SQL Private Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:188) StringComplete |'Deploys the configurations of a Private DNS Zone Group by a parameter for SQL Private Private Endpoint. Used enforce the configuration to a single Private DNS Zone. '| +//@[188:189) NewLine |\n| + DisplayName: 'Deploy DNS Zone Group for SQL Private Endpoint' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:70) StringComplete |'Deploy DNS Zone Group for SQL Private Endpoint'| +//@[70:71) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + privateDnsZoneId: { +//@[10:26) Identifier |privateDnsZoneId| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'privateDnsZoneId' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:45) StringComplete |'privateDnsZoneId'| +//@[45:46) NewLine |\n| + strongType: 'Microsoft.Network/privateDnsZones' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:61) StringComplete |'Microsoft.Network/privateDnsZones'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Network/privateEndpoints' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:60) StringComplete |'Microsoft.Network/privateEndpoints'| +//@[60:61) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + count: { +//@[16:21) Identifier |count| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' +//@[18:23) Identifier |field| +//@[23:24) Colon |:| +//@[25:106) StringComplete |'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]'| +//@[106:107) NewLine |\n| + where: { +//@[18:23) Identifier |where| +//@[23:24) Colon |:| +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]'| +//@[108:109) NewLine |\n| + equals: 'sqlServer' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:39) StringComplete |'sqlServer'| +//@[39:40) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + greaterOrEquals: 1 +//@[16:31) Identifier |greaterOrEquals| +//@[31:32) Colon |:| +//@[33:34) Integer |1| +//@[34:35) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:77) StringComplete |'Microsoft.Network/privateEndpoints/privateDnsZoneGroups'| +//@[77:78) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:112) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[112:113) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + privateDnsZoneId: { +//@[22:38) Identifier |privateDnsZoneId| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + privateEndpointName: { +//@[22:41) Identifier |privateEndpointName| +//@[41:42) Colon |:| +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:100) StringComplete |'[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]'| +//@[100:101) NewLine |\n| + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:87) StringComplete |'Microsoft.Network/privateEndpoints/privateDnsZoneGroups'| +//@[87:88) NewLine |\n| + apiVersion: '2020-03-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2020-03-01'| +//@[48:49) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + privateDnsZoneConfigs: [ +//@[26:47) Identifier |privateDnsZoneConfigs| +//@[47:48) Colon |:| +//@[49:50) LeftSquare |[| +//@[50:51) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + name: 'sqlServer-privateDnsZone' +//@[30:34) Identifier |name| +//@[34:35) Colon |:| +//@[36:62) StringComplete |'sqlServer-privateDnsZone'| +//@[62:63) NewLine |\n| + properties: { +//@[30:40) Identifier |properties| +//@[40:41) Colon |:| +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' +//@[32:48) Identifier |privateDnsZoneId| +//@[48:49) Colon |:| +//@[50:86) StringComplete |'[parameters(\'privateDnsZoneId\')]'| +//@[86:87) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + privateDnsZoneId: { +//@[20:36) Identifier |privateDnsZoneId| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + value: '[parameters(\'privateDnsZoneId\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:65) StringComplete |'[parameters(\'privateDnsZoneId\')]'| +//@[65:66) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + privateEndpointName: { +//@[20:39) Identifier |privateEndpointName| +//@[39:40) Colon |:| +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-DNSZoneGroup-For-Sql-PrivateEndpoint' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:57) StringComplete |'Deploy-DNSZoneGroup-For-Sql-PrivateEndpoint'| +//@[57:58) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Table Private Endpoint. Used enforce the configuration to a single Private DNS Zone. ' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:190) StringComplete |'Deploys the configurations of a Private DNS Zone Group by a parameter for Storage-Table Private Endpoint. Used enforce the configuration to a single Private DNS Zone. '| +//@[190:191) NewLine |\n| + DisplayName: 'Deploy DNS Zone Group for Storage-Table Private Endpoint' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:80) StringComplete |'Deploy DNS Zone Group for Storage-Table Private Endpoint'| +//@[80:81) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + privateDnsZoneId: { +//@[10:26) Identifier |privateDnsZoneId| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'privateDnsZoneId' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:45) StringComplete |'privateDnsZoneId'| +//@[45:46) NewLine |\n| + strongType: 'Microsoft.Network/privateDnsZones' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:61) StringComplete |'Microsoft.Network/privateDnsZones'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Network/privateEndpoints' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:60) StringComplete |'Microsoft.Network/privateEndpoints'| +//@[60:61) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + count: { +//@[16:21) Identifier |count| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' +//@[18:23) Identifier |field| +//@[23:24) Colon |:| +//@[25:106) StringComplete |'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]'| +//@[106:107) NewLine |\n| + where: { +//@[18:23) Identifier |where| +//@[23:24) Colon |:| +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + field: 'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]'| +//@[108:109) NewLine |\n| + equals: 'table' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:35) StringComplete |'table'| +//@[35:36) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + greaterOrEquals: 1 +//@[16:31) Identifier |greaterOrEquals| +//@[31:32) Colon |:| +//@[33:34) Integer |1| +//@[34:35) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:77) StringComplete |'Microsoft.Network/privateEndpoints/privateDnsZoneGroups'| +//@[77:78) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:112) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[112:113) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + privateDnsZoneId: { +//@[22:38) Identifier |privateDnsZoneId| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + privateEndpointName: { +//@[22:41) Identifier |privateEndpointName| +//@[41:42) Colon |:| +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + name: '[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:100) StringComplete |'[concat(parameters(\'privateEndpointName\'), \'/deployedByPolicy\')]'| +//@[100:101) NewLine |\n| + type: 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:87) StringComplete |'Microsoft.Network/privateEndpoints/privateDnsZoneGroups'| +//@[87:88) NewLine |\n| + apiVersion: '2020-03-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2020-03-01'| +//@[48:49) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + privateDnsZoneConfigs: [ +//@[26:47) Identifier |privateDnsZoneConfigs| +//@[47:48) Colon |:| +//@[49:50) LeftSquare |[| +//@[50:51) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + name: 'storageTable-privateDnsZone' +//@[30:34) Identifier |name| +//@[34:35) Colon |:| +//@[36:65) StringComplete |'storageTable-privateDnsZone'| +//@[65:66) NewLine |\n| + properties: { +//@[30:40) Identifier |properties| +//@[40:41) Colon |:| +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + privateDnsZoneId: '[parameters(\'privateDnsZoneId\')]' +//@[32:48) Identifier |privateDnsZoneId| +//@[48:49) Colon |:| +//@[50:86) StringComplete |'[parameters(\'privateDnsZoneId\')]'| +//@[86:87) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + privateDnsZoneId: { +//@[20:36) Identifier |privateDnsZoneId| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + value: '[parameters(\'privateDnsZoneId\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:65) StringComplete |'[parameters(\'privateDnsZoneId\')]'| +//@[65:66) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + privateEndpointName: { +//@[20:39) Identifier |privateEndpointName| +//@[39:40) Colon |:| +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-DNSZoneGroup-For-Table-PrivateEndpoint' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:59) StringComplete |'Deploy-DNSZoneGroup-For-Table-PrivateEndpoint'| +//@[59:60) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Event Grid subscriptions to stream to a Log Analytics workspace when any Event Grid subscriptions which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:294) StringComplete |'Deploys the diagnostic settings for Event Grid subscriptions to stream to a Log Analytics workspace when any Event Grid subscriptions which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[294:295) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Event Grid subscriptions to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:105) StringComplete |'Deploy Diagnostic Settings for Event Grid subscriptions to Log Analytics workspace'| +//@[105:106) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.EventGrid/eventSubscriptions' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:60) StringComplete |'Microsoft.EventGrid/eventSubscriptions'| +//@[60:61) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.EventGrid/eventSubscriptions/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:99) StringComplete |'Microsoft.EventGrid/eventSubscriptions/providers/diagnosticSettings'| +//@[99:100) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [] +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) RightSquare |]| +//@[34:35) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-EventGridSub' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:45) StringComplete |'Deploy-Diagnostics-EventGridSub'| +//@[45:46) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Event Grid Topic to stream to a Log Analytics workspace when any Event Grid Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:278) StringComplete |'Deploys the diagnostic settings for Event Grid Topic to stream to a Log Analytics workspace when any Event Grid Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[278:279) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Event Grid Topic to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:97) StringComplete |'Deploy Diagnostic Settings for Event Grid Topic to Log Analytics workspace'| +//@[97:98) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.EventGrid/topics' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:48) StringComplete |'Microsoft.EventGrid/topics'| +//@[48:49) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.EventGrid/topics/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:87) StringComplete |'Microsoft.EventGrid/topics/providers/diagnosticSettings'| +//@[87:88) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DeliveryFailures' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:58) StringComplete |'DeliveryFailures'| +//@[58:59) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'PublishFailures' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:57) StringComplete |'PublishFailures'| +//@[57:58) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-EventGridTopic' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:47) StringComplete |'Deploy-Diagnostics-EventGridTopic'| +//@[47:48) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Event Hubs to stream to a Log Analytics workspace when any Event Hubs which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:266) StringComplete |'Deploys the diagnostic settings for Event Hubs to stream to a Log Analytics workspace when any Event Hubs which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[266:267) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Event Hubs to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:91) StringComplete |'Deploy Diagnostic Settings for Event Hubs to Log Analytics workspace'| +//@[91:92) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.EventHub/namespaces' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:51) StringComplete |'Microsoft.EventHub/namespaces'| +//@[51:52) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.EventHub/namespaces/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:90) StringComplete |'Microsoft.EventHub/namespaces/providers/diagnosticSettings'| +//@[90:91) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ArchiveLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:53) StringComplete |'ArchiveLogs'| +//@[53:54) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'OperationalLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:57) StringComplete |'OperationalLogs'| +//@[57:58) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AutoScaleLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:55) StringComplete |'AutoScaleLogs'| +//@[55:56) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'KafkaCoordinatorLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:62) StringComplete |'KafkaCoordinatorLogs'| +//@[62:63) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'KafkaUserErrorLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:60) StringComplete |'KafkaUserErrorLogs'| +//@[60:61) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'EventHubVNetConnectionEvent' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:69) StringComplete |'EventHubVNetConnectionEvent'| +//@[69:70) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'CustomerManagedKeyUserLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:68) StringComplete |'CustomerManagedKeyUserLogs'| +//@[68:69) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-EventHub' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:41) StringComplete |'Deploy-Diagnostics-EventHub'| +//@[41:42) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Event Grid System Topic to stream to a Log Analytics workspace when any Event Grid System Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:292) StringComplete |'Deploys the diagnostic settings for Event Grid System Topic to stream to a Log Analytics workspace when any Event Grid System Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[292:293) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Event Grid System Topic to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:104) StringComplete |'Deploy Diagnostic Settings for Event Grid System Topic to Log Analytics workspace'| +//@[104:105) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.EventGrid/systemTopics' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:54) StringComplete |'Microsoft.EventGrid/systemTopics'| +//@[54:55) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.EventGrid/systemTopics/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:93) StringComplete |'Microsoft.EventGrid/systemTopics/providers/diagnosticSettings'| +//@[93:94) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DeliveryFailures' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:58) StringComplete |'DeliveryFailures'| +//@[58:59) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-EventGridSystemTopic' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:53) StringComplete |'Deploy-Diagnostics-EventGridSystemTopic'| +//@[53:54) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for ExpressRoute to stream to a Log Analytics workspace when any ExpressRoute which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:270) StringComplete |'Deploys the diagnostic settings for ExpressRoute to stream to a Log Analytics workspace when any ExpressRoute which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[270:271) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for ExpressRoute to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:93) StringComplete |'Deploy Diagnostic Settings for ExpressRoute to Log Analytics workspace'| +//@[93:94) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/expressRouteCircuits' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:60) StringComplete |'Microsoft.Network/expressRouteCircuits'| +//@[60:61) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Network/expressRouteCircuits/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:99) StringComplete |'Microsoft.Network/expressRouteCircuits/providers/diagnosticSettings'| +//@[99:100) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'PeeringRouteLog' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:57) StringComplete |'PeeringRouteLog'| +//@[57:58) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-ExpressRoute' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:45) StringComplete |'Deploy-Diagnostics-ExpressRoute'| +//@[45:46) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Firewall to stream to a Log Analytics workspace when any Firewall which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:262) StringComplete |'Deploys the diagnostic settings for Firewall to stream to a Log Analytics workspace when any Firewall which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[262:263) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Firewall to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:89) StringComplete |'Deploy Diagnostic Settings for Firewall to Log Analytics workspace'| +//@[89:90) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/azureFirewalls' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:54) StringComplete |'Microsoft.Network/azureFirewalls'| +//@[54:55) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Network/azureFirewalls/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:93) StringComplete |'Microsoft.Network/azureFirewalls/providers/diagnosticSettings'| +//@[93:94) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AzureFirewallApplicationRule' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:70) StringComplete |'AzureFirewallApplicationRule'| +//@[70:71) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AzureFirewallNetworkRule' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:66) StringComplete |'AzureFirewallNetworkRule'| +//@[66:67) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AzureFirewallDnsProxy' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:63) StringComplete |'AzureFirewallDnsProxy'| +//@[63:64) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-Firewall' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:41) StringComplete |'Deploy-Diagnostics-Firewall'| +//@[41:42) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys Azure Firewall Manager policy in subscription where the policy is assigned.' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:106) StringComplete |'Deploys Azure Firewall Manager policy in subscription where the policy is assigned.'| +//@[106:107) NewLine |\n| + DisplayName: 'Deploy Azure Firewall Manager policy in the subscription' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:79) StringComplete |'Deploy Azure Firewall Manager policy in the subscription'| +//@[79:80) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + fwpolicy: { +//@[10:18) Identifier |fwpolicy| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + type: 'Object' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'Object'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'fwpolicy' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:37) StringComplete |'fwpolicy'| +//@[37:38) NewLine |\n| + description: 'Object describing Azure Firewall Policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:68) StringComplete |'Object describing Azure Firewall Policy'| +//@[68:69) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: {} +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) RightBrace |}| +//@[28:29) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + fwPolicyRegion: { +//@[10:24) Identifier |fwPolicyRegion| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'fwPolicyRegion' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'fwPolicyRegion'| +//@[43:44) NewLine |\n| + description: 'Select Azure region for Azure Firewall Policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Select Azure region for Azure Firewall Policy'| +//@[74:75) NewLine |\n| + strongType: 'location' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:36) StringComplete |'location'| +//@[36:37) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + rgName: { +//@[10:16) Identifier |rgName| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'rgName' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'rgName'| +//@[35:36) NewLine |\n| + description: 'Provide name for resource group.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:61) StringComplete |'Provide name for resource group.'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Resources/subscriptions' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringComplete |'Microsoft.Resources/subscriptions'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/firewallPolicies' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:56) StringComplete |'Microsoft.Network/firewallPolicies'| +//@[56:57) NewLine |\n| + deploymentScope: 'Subscription' +//@[14:29) Identifier |deploymentScope| +//@[29:30) Colon |:| +//@[31:45) StringComplete |'Subscription'| +//@[45:46) NewLine |\n| + existenceScope: 'ResourceGroup' +//@[14:28) Identifier |existenceScope| +//@[28:29) Colon |:| +//@[30:45) StringComplete |'ResourceGroup'| +//@[45:46) NewLine |\n| + resourceGroupName: '[parameters(\'rgName\')]' +//@[14:31) Identifier |resourceGroupName| +//@[31:32) Colon |:| +//@[33:59) StringComplete |'[parameters(\'rgName\')]'| +//@[59:60) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + location: 'northeurope' +//@[16:24) Identifier |location| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'northeurope'| +//@[39:40) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + rgName: { +//@[20:26) Identifier |rgName| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'rgName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:55) StringComplete |'[parameters(\'rgName\')]'| +//@[55:56) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + fwPolicy: { +//@[20:28) Identifier |fwPolicy| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[parameters(\'fwPolicy\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:57) StringComplete |'[parameters(\'fwPolicy\')]'| +//@[57:58) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + fwPolicyRegion: { +//@[20:34) Identifier |fwPolicyRegion| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'fwPolicyRegion\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'fwPolicyRegion\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:122) StringComplete |'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json'| +//@[122:123) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + rgName: { +//@[22:28) Identifier |rgName| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + fwPolicy: { +//@[22:30) Identifier |fwPolicy| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'object' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'object'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + fwPolicyRegion: { +//@[22:36) Identifier |fwPolicyRegion| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/resourceGroups' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:66) StringComplete |'Microsoft.Resources/resourceGroups'| +//@[66:67) NewLine |\n| + apiVersion: '2018-05-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2018-05-01'| +//@[48:49) NewLine |\n| + name: '[parameters(\'rgName\')]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:56) StringComplete |'[parameters(\'rgName\')]'| +//@[56:57) NewLine |\n| + location: '[deployment().location]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:59) StringComplete |'[deployment().location]'| +//@[59:60) NewLine |\n| + properties: {} +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) RightBrace |}| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2018-05-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2018-05-01'| +//@[48:49) NewLine |\n| + name: 'fwpolicies' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:42) StringComplete |'fwpolicies'| +//@[42:43) NewLine |\n| + resourceGroup: '[parameters(\'rgName\')]' +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:65) StringComplete |'[parameters(\'rgName\')]'| +//@[65:66) NewLine |\n| + dependsOn: [ +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' +//@[26:105) StringComplete |'[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]'| +//@[105:106) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json' +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:118) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json'| +//@[118:119) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Network/firewallPolicies' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:74) StringComplete |'Microsoft.Network/firewallPolicies'| +//@[74:75) NewLine |\n| + apiVersion: '2019-09-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2019-09-01'| +//@[56:57) NewLine |\n| + name: '[parameters(\'fwpolicy\').firewallPolicyName]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:85) StringComplete |'[parameters(\'fwpolicy\').firewallPolicyName]'| +//@[85:86) NewLine |\n| + location: '[parameters(\'fwpolicy\').location]' +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:79) StringComplete |'[parameters(\'fwpolicy\').location]'| +//@[79:80) NewLine |\n| + dependsOn: [] +//@[32:41) Identifier |dependsOn| +//@[41:42) Colon |:| +//@[43:44) LeftSquare |[| +//@[44:45) RightSquare |]| +//@[45:46) NewLine |\n| + tags: {} +//@[32:36) Identifier |tags| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + properties: {} +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) RightBrace |}| +//@[46:47) NewLine |\n| + resources: [ +//@[32:41) Identifier |resources| +//@[41:42) Colon |:| +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + { +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + type: 'ruleGroups' +//@[36:40) Identifier |type| +//@[40:41) Colon |:| +//@[42:54) StringComplete |'ruleGroups'| +//@[54:55) NewLine |\n| + apiVersion: '2019-09-01' +//@[36:46) Identifier |apiVersion| +//@[46:47) Colon |:| +//@[48:60) StringComplete |'2019-09-01'| +//@[60:61) NewLine |\n| + name: '[parameters(\'fwpolicy\').ruleGroups.name]' +//@[36:40) Identifier |name| +//@[40:41) Colon |:| +//@[42:86) StringComplete |'[parameters(\'fwpolicy\').ruleGroups.name]'| +//@[86:87) NewLine |\n| + dependsOn: [ +//@[36:45) Identifier |dependsOn| +//@[45:46) Colon |:| +//@[47:48) LeftSquare |[| +//@[48:49) NewLine |\n| + '[resourceId(\'Microsoft.Network/firewallPolicies\',parameters(\'fwpolicy\').firewallPolicyName)]' +//@[38:136) StringComplete |'[resourceId(\'Microsoft.Network/firewallPolicies\',parameters(\'fwpolicy\').firewallPolicyName)]'| +//@[136:137) NewLine |\n| + ] +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[36:46) Identifier |properties| +//@[46:47) Colon |:| +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + priority: '[parameters(\'fwpolicy\').ruleGroups.properties.priority]' +//@[38:46) Identifier |priority| +//@[46:47) Colon |:| +//@[48:107) StringComplete |'[parameters(\'fwpolicy\').ruleGroups.properties.priority]'| +//@[107:108) NewLine |\n| + rules: '[parameters(\'fwpolicy\').ruleGroups.properties.rules]' +//@[38:43) Identifier |rules| +//@[43:44) Colon |:| +//@[45:101) StringComplete |'[parameters(\'fwpolicy\').ruleGroups.properties.rules]'| +//@[101:102) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + ] +//@[32:33) RightSquare |]| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + outputs: {} +//@[28:35) Identifier |outputs| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-FirewallPolicy' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:35) StringComplete |'Deploy-FirewallPolicy'| +//@[35:36) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Front Door to stream to a Log Analytics workspace when any Front Door which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:266) StringComplete |'Deploys the diagnostic settings for Front Door to stream to a Log Analytics workspace when any Front Door which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[266:267) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Front Door to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:91) StringComplete |'Deploy Diagnostic Settings for Front Door to Log Analytics workspace'| +//@[91:92) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/frontDoors' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:50) StringComplete |'Microsoft.Network/frontDoors'| +//@[50:51) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Network/frontDoors/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:89) StringComplete |'Microsoft.Network/frontDoors/providers/diagnosticSettings'| +//@[89:90) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'FrontdoorAccessLog' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:60) StringComplete |'FrontdoorAccessLog'| +//@[60:61) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'FrontdoorWebApplicationFirewallLog' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:76) StringComplete |'FrontdoorWebApplicationFirewallLog'| +//@[76:77) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-FrontDoor' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:42) StringComplete |'Deploy-Diagnostics-FrontDoor'| +//@[42:43) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Azure Function App to stream to a Log Analytics workspace when any function app which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:276) StringComplete |'Deploys the diagnostic settings for Azure Function App to stream to a Log Analytics workspace when any function app which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[276:277) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Azure Function App to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:99) StringComplete |'Deploy Diagnostic Settings for Azure Function App to Log Analytics workspace'| +//@[99:100) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Web/sites' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:45) StringComplete |'Microsoft.Web/sites'| +//@[45:46) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + value: '[field(\'kind\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:42) StringComplete |'[field(\'kind\')]'| +//@[42:43) NewLine |\n| + notEquals: 'app' +//@[16:25) Identifier |notEquals| +//@[25:26) Colon |:| +//@[27:32) StringComplete |'app'| +//@[32:33) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Web/sites/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:80) StringComplete |'Microsoft.Web/sites/providers/diagnosticSettings'| +//@[80:81) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'FunctionAppLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:57) StringComplete |'FunctionAppLogs'| +//@[57:58) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-Function' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:41) StringComplete |'Deploy-Diagnostics-Function'| +//@[41:42) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for HDInsight to stream to a Log Analytics workspace when any HDInsight which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:264) StringComplete |'Deploys the diagnostic settings for HDInsight to stream to a Log Analytics workspace when any HDInsight which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[264:265) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for HDInsight to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:90) StringComplete |'Deploy Diagnostic Settings for HDInsight to Log Analytics workspace'| +//@[90:91) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.HDInsight/clusters' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:50) StringComplete |'Microsoft.HDInsight/clusters'| +//@[50:51) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.HDInsight/clusters/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:89) StringComplete |'Microsoft.HDInsight/clusters/providers/diagnosticSettings'| +//@[89:90) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [] +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) RightSquare |]| +//@[34:35) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-HDInsight' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:42) StringComplete |'Deploy-Diagnostics-HDInsight'| +//@[42:43) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for IoT Hub to stream to a Log Analytics workspace when any IoT Hub which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:260) StringComplete |'Deploys the diagnostic settings for IoT Hub to stream to a Log Analytics workspace when any IoT Hub which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[260:261) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for IoT Hub to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:88) StringComplete |'Deploy Diagnostic Settings for IoT Hub to Log Analytics workspace'| +//@[88:89) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Devices/IotHubs' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:47) StringComplete |'Microsoft.Devices/IotHubs'| +//@[47:48) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Devices/IotHubs/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:86) StringComplete |'Microsoft.Devices/IotHubs/providers/diagnosticSettings'| +//@[86:87) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Connections' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:53) StringComplete |'Connections'| +//@[53:54) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DeviceTelemetry' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:57) StringComplete |'DeviceTelemetry'| +//@[57:58) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'C2DCommands' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:53) StringComplete |'C2DCommands'| +//@[53:54) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DeviceIdentityOperations' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:66) StringComplete |'DeviceIdentityOperations'| +//@[66:67) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'FileUploadOperations' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:62) StringComplete |'FileUploadOperations'| +//@[62:63) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Routes' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:48) StringComplete |'Routes'| +//@[48:49) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'D2CTwinOperations' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:59) StringComplete |'D2CTwinOperations'| +//@[59:60) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'C2DTwinOperations' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:59) StringComplete |'C2DTwinOperations'| +//@[59:60) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'TwinQueries' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:53) StringComplete |'TwinQueries'| +//@[53:54) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'JobsOperations' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:56) StringComplete |'JobsOperations'| +//@[56:57) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DirectMethods' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:55) StringComplete |'DirectMethods'| +//@[55:56) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DistributedTracing' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:60) StringComplete |'DistributedTracing'| +//@[60:61) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Configurations' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:56) StringComplete |'Configurations'| +//@[56:57) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DeviceStreams' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:55) StringComplete |'DeviceStreams'| +//@[55:56) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-iotHub' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:39) StringComplete |'Deploy-Diagnostics-iotHub'| +//@[39:40) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Key Vault to stream to a Log Analytics workspace when any Key Vault which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:264) StringComplete |'Deploys the diagnostic settings for Key Vault to stream to a Log Analytics workspace when any Key Vault which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[264:265) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Key Vault to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:90) StringComplete |'Deploy Diagnostic Settings for Key Vault to Log Analytics workspace'| +//@[90:91) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.KeyVault/vaults' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:47) StringComplete |'Microsoft.KeyVault/vaults'| +//@[47:48) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.KeyVault/vaults/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:86) StringComplete |'Microsoft.KeyVault/vaults/providers/diagnosticSettings'| +//@[86:87) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AuditEvent' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AuditEvent'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-KeyVault' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:41) StringComplete |'Deploy-Diagnostics-KeyVault'| +//@[41:42) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies creation of Key Vaults with IP Firewall exposed to all public endpoints' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:113) StringComplete |'This policy denies creation of Key Vaults with IP Firewall exposed to all public endpoints'| +//@[113:114) NewLine |\n| + DisplayName: 'Public network access should be disabled for KeyVault' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:76) StringComplete |'Public network access should be disabled for KeyVault'| +//@[76:77) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Key Vault' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:31) StringComplete |'Key Vault'| +//@[31:32) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.KeyVault/vaults' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:51) StringComplete |'Microsoft.KeyVault/vaults'| +//@[51:52) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.KeyVault/vaults/networkAcls.defaultAction' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:76) StringComplete |'Microsoft.KeyVault/vaults/networkAcls.defaultAction'| +//@[76:77) NewLine |\n| + notequals: 'Deny' +//@[16:25) Identifier |notequals| +//@[25:26) Colon |:| +//@[27:33) StringComplete |'Deny'| +//@[33:34) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-PublicEndpoint-KeyVault' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:42) StringComplete |'Deny-PublicEndpoint-KeyVault'| +//@[42:43) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy enables you to ensure when a Key Vault is created with out soft delete enabled it will be added.' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:131) StringComplete |'This policy enables you to ensure when a Key Vault is created with out soft delete enabled it will be added.'| +//@[131:132) NewLine |\n| + DisplayName: 'KeyVault SoftDelete should be enabled' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:60) StringComplete |'KeyVault SoftDelete should be enabled'| +//@[60:61) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: {} +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) RightBrace |}| +//@[22:23) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Key Vault' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:31) StringComplete |'Key Vault'| +//@[31:32) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + anyOf: [ +//@[12:17) Identifier |anyOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'type' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:33) StringComplete |'type'| +//@[33:34) NewLine |\n| + equals: 'Microsoft.KeyVault/vaults' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:55) StringComplete |'Microsoft.KeyVault/vaults'| +//@[55:56) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.KeyVault/vaults/enableSoftDelete' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:71) StringComplete |'Microsoft.KeyVault/vaults/enableSoftDelete'| +//@[71:72) NewLine |\n| + notEquals: false +//@[20:29) Identifier |notEquals| +//@[29:30) Colon |:| +//@[31:36) FalseKeyword |false| +//@[36:37) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: 'append' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:28) StringComplete |'append'| +//@[28:29) NewLine |\n| + details: [ +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftSquare |[| +//@[22:23) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.KeyVault/vaults/enableSoftDelete' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:67) StringComplete |'Microsoft.KeyVault/vaults/enableSoftDelete'| +//@[67:68) NewLine |\n| + value: true +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:27) TrueKeyword |true| +//@[27:28) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Append-KV-SoftDelete' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:34) StringComplete |'Append-KV-SoftDelete'| +//@[34:35) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Load Balancer to stream to a Log Analytics workspace when any Load Balancer which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:272) StringComplete |'Deploys the diagnostic settings for Load Balancer to stream to a Log Analytics workspace when any Load Balancer which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[272:273) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Load Balancer to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:94) StringComplete |'Deploy Diagnostic Settings for Load Balancer to Log Analytics workspace'| +//@[94:95) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/loadBalancers' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:53) StringComplete |'Microsoft.Network/loadBalancers'| +//@[53:54) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Network/loadBalancers/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:92) StringComplete |'Microsoft.Network/loadBalancers/providers/diagnosticSettings'| +//@[92:93) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'LoadBalancerAlertEvent' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:64) StringComplete |'LoadBalancerAlertEvent'| +//@[64:65) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'LoadBalancerProbeHealthStatus' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:71) StringComplete |'LoadBalancerProbeHealthStatus'| +//@[71:72) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-LoadBalancer' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:45) StringComplete |'Deploy-Diagnostics-LoadBalancer'| +//@[45:46) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploy the configurations to the Log Analytics in the subscription. This includes a list of solutions like update, automation etc and enables the vminsight counters. ' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:190) StringComplete |'Deploy the configurations to the Log Analytics in the subscription. This includes a list of solutions like update, automation etc and enables the vminsight counters. '| +//@[190:191) NewLine |\n| + DisplayName: 'Deploy the configurations to the Log Analytics in the subscription' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:89) StringComplete |'Deploy the configurations to the Log Analytics in the subscription'| +//@[89:90) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + workspaceName: { +//@[10:23) Identifier |workspaceName| +//@[23:24) Colon |:| +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'workspaceName' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:42) StringComplete |'workspaceName'| +//@[42:43) NewLine |\n| + description: 'Provide name of existing Log Analytics workspace' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:77) StringComplete |'Provide name of existing Log Analytics workspace'| +//@[77:78) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + workspaceRegion: { +//@[10:25) Identifier |workspaceRegion| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'workspaceRegion' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:44) StringComplete |'workspaceRegion'| +//@[44:45) NewLine |\n| + description: 'Select region of existing Log Analytics workspace' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Select region of existing Log Analytics workspace'| +//@[78:79) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.OperationalInsights/workspaces' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:66) StringComplete |'Microsoft.OperationalInsights/workspaces'| +//@[66:67) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.OperationalInsights/workspaces' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:62) StringComplete |'Microsoft.OperationalInsights/workspaces'| +//@[62:63) NewLine |\n| + deploymentScope: 'resourceGroup' +//@[14:29) Identifier |deploymentScope| +//@[29:30) Colon |:| +//@[31:46) StringComplete |'resourceGroup'| +//@[46:47) NewLine |\n| + existenceScope: 'Subscription' +//@[14:28) Identifier |existenceScope| +//@[28:29) Colon |:| +//@[30:44) StringComplete |'Subscription'| +//@[44:45) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'name' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:33) StringComplete |'name'| +//@[33:34) NewLine |\n| + like: '[parameters(\'workspaceName\')]' +//@[20:24) Identifier |like| +//@[24:25) Colon |:| +//@[26:59) StringComplete |'[parameters(\'workspaceName\')]'| +//@[59:60) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'location' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:37) StringComplete |'location'| +//@[37:38) NewLine |\n| + equals: '[parameters(\'workspaceRegion\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:63) StringComplete |'[parameters(\'workspaceRegion\')]'| +//@[63:64) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + workspaceName: { +//@[20:33) Identifier |workspaceName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + value: '[parameters(\'workspaceName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:62) StringComplete |'[parameters(\'workspaceName\')]'| +//@[62:63) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + workspaceRegion: { +//@[20:35) Identifier |workspaceRegion| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + value: '[parameters(\'workspaceRegion\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:64) StringComplete |'[parameters(\'workspaceRegion\')]'| +//@[64:65) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:112) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[112:113) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + workspaceName: { +//@[22:35) Identifier |workspaceName| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + workspaceRegion: { +//@[22:37) Identifier |workspaceRegion| +//@[37:38) Colon |:| +//@[39:40) LeftBrace |{| +//@[40:41) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: { +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) NewLine |\n| + vmInsightsPerfCounters: { +//@[22:44) Identifier |vmInsightsPerfCounters| +//@[44:45) Colon |:| +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + windowsArray: [ +//@[24:36) Identifier |windowsArray| +//@[36:37) Colon |:| +//@[38:39) LeftSquare |[| +//@[39:40) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter1' +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:47) StringComplete |'counter1'| +//@[47:48) NewLine |\n| + objectName: 'LogicalDisk' +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:53) StringComplete |'LogicalDisk'| +//@[53:54) NewLine |\n| + counterName: '% Free Space' +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:55) StringComplete |'% Free Space'| +//@[55:56) NewLine |\n| + instanceName: '*' +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter2' +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:47) StringComplete |'counter2'| +//@[47:48) NewLine |\n| + objectName: 'LogicalDisk' +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:53) StringComplete |'LogicalDisk'| +//@[53:54) NewLine |\n| + counterName: 'Avg. Disk sec/Read' +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:61) StringComplete |'Avg. Disk sec/Read'| +//@[61:62) NewLine |\n| + instanceName: '*' +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter3' +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:47) StringComplete |'counter3'| +//@[47:48) NewLine |\n| + objectName: 'LogicalDisk' +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:53) StringComplete |'LogicalDisk'| +//@[53:54) NewLine |\n| + counterName: 'Avg. Disk sec/Transfer' +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:65) StringComplete |'Avg. Disk sec/Transfer'| +//@[65:66) NewLine |\n| + instanceName: '*' +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter4' +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:47) StringComplete |'counter4'| +//@[47:48) NewLine |\n| + objectName: 'LogicalDisk' +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:53) StringComplete |'LogicalDisk'| +//@[53:54) NewLine |\n| + counterName: 'Avg. Disk sec/Write' +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:62) StringComplete |'Avg. Disk sec/Write'| +//@[62:63) NewLine |\n| + instanceName: '*' +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter5' +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:47) StringComplete |'counter5'| +//@[47:48) NewLine |\n| + objectName: 'LogicalDisk' +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:53) StringComplete |'LogicalDisk'| +//@[53:54) NewLine |\n| + counterName: 'Disk Read Bytes/sec' +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:62) StringComplete |'Disk Read Bytes/sec'| +//@[62:63) NewLine |\n| + instanceName: '*' +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter6' +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:47) StringComplete |'counter6'| +//@[47:48) NewLine |\n| + objectName: 'LogicalDisk' +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:53) StringComplete |'LogicalDisk'| +//@[53:54) NewLine |\n| + counterName: 'Disk Reads/sec' +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:57) StringComplete |'Disk Reads/sec'| +//@[57:58) NewLine |\n| + instanceName: '*' +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter7' +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:47) StringComplete |'counter7'| +//@[47:48) NewLine |\n| + objectName: 'LogicalDisk' +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:53) StringComplete |'LogicalDisk'| +//@[53:54) NewLine |\n| + counterName: 'Disk Transfers/sec' +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:61) StringComplete |'Disk Transfers/sec'| +//@[61:62) NewLine |\n| + instanceName: '*' +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter8' +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:47) StringComplete |'counter8'| +//@[47:48) NewLine |\n| + objectName: 'LogicalDisk' +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:53) StringComplete |'LogicalDisk'| +//@[53:54) NewLine |\n| + counterName: 'Disk Write Bytes/sec' +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:63) StringComplete |'Disk Write Bytes/sec'| +//@[63:64) NewLine |\n| + instanceName: '*' +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter9' +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:47) StringComplete |'counter9'| +//@[47:48) NewLine |\n| + objectName: 'LogicalDisk' +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:53) StringComplete |'LogicalDisk'| +//@[53:54) NewLine |\n| + counterName: 'Disk Writes/sec' +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:58) StringComplete |'Disk Writes/sec'| +//@[58:59) NewLine |\n| + instanceName: '*' +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter10' +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:48) StringComplete |'counter10'| +//@[48:49) NewLine |\n| + objectName: 'LogicalDisk' +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:53) StringComplete |'LogicalDisk'| +//@[53:54) NewLine |\n| + counterName: 'Free Megabytes' +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:57) StringComplete |'Free Megabytes'| +//@[57:58) NewLine |\n| + instanceName: '*' +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter11' +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:48) StringComplete |'counter11'| +//@[48:49) NewLine |\n| + objectName: 'Memory' +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:48) StringComplete |'Memory'| +//@[48:49) NewLine |\n| + counterName: 'Available MBytes' +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:59) StringComplete |'Available MBytes'| +//@[59:60) NewLine |\n| + instanceName: '*' +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter12' +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:48) StringComplete |'counter12'| +//@[48:49) NewLine |\n| + objectName: 'Network Adapter' +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:57) StringComplete |'Network Adapter'| +//@[57:58) NewLine |\n| + counterName: 'Bytes Received/sec' +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:61) StringComplete |'Bytes Received/sec'| +//@[61:62) NewLine |\n| + instanceName: '*' +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter13' +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:48) StringComplete |'counter13'| +//@[48:49) NewLine |\n| + objectName: 'Network Adapter' +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:57) StringComplete |'Network Adapter'| +//@[57:58) NewLine |\n| + counterName: 'Bytes Sent/sec' +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:57) StringComplete |'Bytes Sent/sec'| +//@[57:58) NewLine |\n| + instanceName: '*' +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + armName: 'counter14' +//@[28:35) Identifier |armName| +//@[35:36) Colon |:| +//@[37:48) StringComplete |'counter14'| +//@[48:49) NewLine |\n| + objectName: 'Processor' +//@[28:38) Identifier |objectName| +//@[38:39) Colon |:| +//@[40:51) StringComplete |'Processor'| +//@[51:52) NewLine |\n| + counterName: '% Processor Time' +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:59) StringComplete |'% Processor Time'| +//@[59:60) NewLine |\n| + instanceName: '*' +//@[28:40) Identifier |instanceName| +//@[40:41) Colon |:| +//@[42:45) StringComplete |'*'| +//@[45:46) NewLine |\n| + intervalSeconds: 10 +//@[28:43) Identifier |intervalSeconds| +//@[43:44) Colon |:| +//@[45:47) Integer |10| +//@[47:48) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + linuxDiskArray: [ +//@[24:38) Identifier |linuxDiskArray| +//@[38:39) Colon |:| +//@[40:41) LeftSquare |[| +//@[41:42) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + counterName: '% Used Inodes' +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:56) StringComplete |'% Used Inodes'| +//@[56:57) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + counterName: 'Free Megabytes' +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:57) StringComplete |'Free Megabytes'| +//@[57:58) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + counterName: '% Used Space' +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:55) StringComplete |'% Used Space'| +//@[55:56) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + counterName: 'Disk Transfers/sec' +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:61) StringComplete |'Disk Transfers/sec'| +//@[61:62) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + counterName: 'Disk Reads/sec' +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:57) StringComplete |'Disk Reads/sec'| +//@[57:58) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + counterName: 'Disk writes/sec' +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:58) StringComplete |'Disk writes/sec'| +//@[58:59) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + linuxDiskObject: { +//@[24:39) Identifier |linuxDiskObject| +//@[39:40) Colon |:| +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + armResourceName: 'Disk' +//@[26:41) Identifier |armResourceName| +//@[41:42) Colon |:| +//@[43:49) StringComplete |'Disk'| +//@[49:50) NewLine |\n| + objectName: 'Logical Disk' +//@[26:36) Identifier |objectName| +//@[36:37) Colon |:| +//@[38:52) StringComplete |'Logical Disk'| +//@[52:53) NewLine |\n| + instanceName: '*' +//@[26:38) Identifier |instanceName| +//@[38:39) Colon |:| +//@[40:43) StringComplete |'*'| +//@[43:44) NewLine |\n| + intervalSeconds: 10 +//@[26:41) Identifier |intervalSeconds| +//@[41:42) Colon |:| +//@[43:45) Integer |10| +//@[45:46) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + linuxMemoryArray: [ +//@[24:40) Identifier |linuxMemoryArray| +//@[40:41) Colon |:| +//@[42:43) LeftSquare |[| +//@[43:44) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + counterName: 'Available MBytes Memory' +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:66) StringComplete |'Available MBytes Memory'| +//@[66:67) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + linuxMemoryObject: { +//@[24:41) Identifier |linuxMemoryObject| +//@[41:42) Colon |:| +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + armResourceName: 'Memory' +//@[26:41) Identifier |armResourceName| +//@[41:42) Colon |:| +//@[43:51) StringComplete |'Memory'| +//@[51:52) NewLine |\n| + objectName: 'Memory' +//@[26:36) Identifier |objectName| +//@[36:37) Colon |:| +//@[38:46) StringComplete |'Memory'| +//@[46:47) NewLine |\n| + instanceName: '*' +//@[26:38) Identifier |instanceName| +//@[38:39) Colon |:| +//@[40:43) StringComplete |'*'| +//@[43:44) NewLine |\n| + intervalSeconds: 10 +//@[26:41) Identifier |intervalSeconds| +//@[41:42) Colon |:| +//@[43:45) Integer |10| +//@[45:46) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + linuxNetworkArray: [ +//@[24:41) Identifier |linuxNetworkArray| +//@[41:42) Colon |:| +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + counterName: 'Total Bytes Received' +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:63) StringComplete |'Total Bytes Received'| +//@[63:64) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + counterName: 'Total Bytes Transmitted' +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:66) StringComplete |'Total Bytes Transmitted'| +//@[66:67) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + linuxNetworkObject: { +//@[24:42) Identifier |linuxNetworkObject| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + armResourceName: 'Network' +//@[26:41) Identifier |armResourceName| +//@[41:42) Colon |:| +//@[43:52) StringComplete |'Network'| +//@[52:53) NewLine |\n| + objectName: 'Network' +//@[26:36) Identifier |objectName| +//@[36:37) Colon |:| +//@[38:47) StringComplete |'Network'| +//@[47:48) NewLine |\n| + instanceName: '*' +//@[26:38) Identifier |instanceName| +//@[38:39) Colon |:| +//@[40:43) StringComplete |'*'| +//@[43:44) NewLine |\n| + intervalSeconds: 10 +//@[26:41) Identifier |intervalSeconds| +//@[41:42) Colon |:| +//@[43:45) Integer |10| +//@[45:46) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + linuxCpuArray: [ +//@[24:37) Identifier |linuxCpuArray| +//@[37:38) Colon |:| +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + counterName: '% Processor Time' +//@[28:39) Identifier |counterName| +//@[39:40) Colon |:| +//@[41:59) StringComplete |'% Processor Time'| +//@[59:60) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + linuxCpuObject: { +//@[24:38) Identifier |linuxCpuObject| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + armResourceName: 'Processor' +//@[26:41) Identifier |armResourceName| +//@[41:42) Colon |:| +//@[43:54) StringComplete |'Processor'| +//@[54:55) NewLine |\n| + objectName: 'Processor' +//@[26:36) Identifier |objectName| +//@[36:37) Colon |:| +//@[38:49) StringComplete |'Processor'| +//@[49:50) NewLine |\n| + instanceName: '*' +//@[26:38) Identifier |instanceName| +//@[38:39) Colon |:| +//@[40:43) StringComplete |'*'| +//@[43:44) NewLine |\n| + intervalSeconds: 10 +//@[26:41) Identifier |intervalSeconds| +//@[41:42) Colon |:| +//@[43:45) Integer |10| +//@[45:46) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + batch1: { +//@[22:28) Identifier |batch1| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + solutions: [ +//@[24:33) Identifier |solutions| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + name: '[concat(\'Security\', \'(\', parameters(\'workspaceName\'), \')\')]' +//@[28:32) Identifier |name| +//@[32:33) Colon |:| +//@[34:103) StringComplete |'[concat(\'Security\', \'(\', parameters(\'workspaceName\'), \')\')]'| +//@[103:104) NewLine |\n| + marketplaceName: 'Security' +//@[28:43) Identifier |marketplaceName| +//@[43:44) Colon |:| +//@[45:55) StringComplete |'Security'| +//@[55:56) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + name: '[concat(\'AgentHealthAssessment\', \'(\', parameters(\'workspaceName\'), \')\')]' +//@[28:32) Identifier |name| +//@[32:33) Colon |:| +//@[34:116) StringComplete |'[concat(\'AgentHealthAssessment\', \'(\', parameters(\'workspaceName\'), \')\')]'| +//@[116:117) NewLine |\n| + marketplaceName: 'AgentHealthAssessment' +//@[28:43) Identifier |marketplaceName| +//@[43:44) Colon |:| +//@[45:68) StringComplete |'AgentHealthAssessment'| +//@[68:69) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + name: '[concat(\'ChangeTracking\', \'(\', parameters(\'workspaceName\'), \')\')]' +//@[28:32) Identifier |name| +//@[32:33) Colon |:| +//@[34:109) StringComplete |'[concat(\'ChangeTracking\', \'(\', parameters(\'workspaceName\'), \')\')]'| +//@[109:110) NewLine |\n| + marketplaceName: 'ChangeTracking' +//@[28:43) Identifier |marketplaceName| +//@[43:44) Colon |:| +//@[45:61) StringComplete |'ChangeTracking'| +//@[61:62) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + name: '[concat(\'Updates\', \'(\', parameters(\'workspaceName\'), \')\')]' +//@[28:32) Identifier |name| +//@[32:33) Colon |:| +//@[34:102) StringComplete |'[concat(\'Updates\', \'(\', parameters(\'workspaceName\'), \')\')]'| +//@[102:103) NewLine |\n| + marketplaceName: 'Updates' +//@[28:43) Identifier |marketplaceName| +//@[43:44) Colon |:| +//@[45:54) StringComplete |'Updates'| +//@[54:55) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + name: '[concat(\'AzureActivity\', \'(\', parameters(\'workspaceName\'), \')\')]' +//@[28:32) Identifier |name| +//@[32:33) Colon |:| +//@[34:108) StringComplete |'[concat(\'AzureActivity\', \'(\', parameters(\'workspaceName\'), \')\')]'| +//@[108:109) NewLine |\n| + marketplaceName: 'AzureActivity' +//@[28:43) Identifier |marketplaceName| +//@[43:44) Colon |:| +//@[45:60) StringComplete |'AzureActivity'| +//@[60:61) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + name: '[concat(\'AzureAutomation\', \'(\', parameters(\'workspaceName\'), \')\')]' +//@[28:32) Identifier |name| +//@[32:33) Colon |:| +//@[34:110) StringComplete |'[concat(\'AzureAutomation\', \'(\', parameters(\'workspaceName\'), \')\')]'| +//@[110:111) NewLine |\n| + marketplaceName: 'AzureAutomation' +//@[28:43) Identifier |marketplaceName| +//@[43:44) Colon |:| +//@[45:62) StringComplete |'AzureAutomation'| +//@[62:63) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + name: '[concat(\'ADAssessment\', \'(\', parameters(\'workspaceName\'), \')\')]' +//@[28:32) Identifier |name| +//@[32:33) Colon |:| +//@[34:107) StringComplete |'[concat(\'ADAssessment\', \'(\', parameters(\'workspaceName\'), \')\')]'| +//@[107:108) NewLine |\n| + marketplaceName: 'ADAssessment' +//@[28:43) Identifier |marketplaceName| +//@[43:44) Colon |:| +//@[45:59) StringComplete |'ADAssessment'| +//@[59:60) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + name: '[concat(\'SQLAssessment\', \'(\', parameters(\'workspaceName\'), \')\')]' +//@[28:32) Identifier |name| +//@[32:33) Colon |:| +//@[34:108) StringComplete |'[concat(\'SQLAssessment\', \'(\', parameters(\'workspaceName\'), \')\')]'| +//@[108:109) NewLine |\n| + marketplaceName: 'SQLAssessment' +//@[28:43) Identifier |marketplaceName| +//@[43:44) Colon |:| +//@[45:60) StringComplete |'SQLAssessment'| +//@[60:61) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + name: '[concat(\'VMInsights\', \'(\', parameters(\'workspaceName\'), \')\')]' +//@[28:32) Identifier |name| +//@[32:33) Colon |:| +//@[34:105) StringComplete |'[concat(\'VMInsights\', \'(\', parameters(\'workspaceName\'), \')\')]'| +//@[105:106) NewLine |\n| + marketplaceName: 'VMInsights' +//@[28:43) Identifier |marketplaceName| +//@[43:44) Colon |:| +//@[45:57) StringComplete |'VMInsights'| +//@[57:58) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + name: '[concat(\'ServiceMap\', \'(\', parameters(\'workspaceName\'), \')\')]' +//@[28:32) Identifier |name| +//@[32:33) Colon |:| +//@[34:105) StringComplete |'[concat(\'ServiceMap\', \'(\', parameters(\'workspaceName\'), \')\')]'| +//@[105:106) NewLine |\n| + marketplaceName: 'ServiceMap' +//@[28:43) Identifier |marketplaceName| +//@[43:44) Colon |:| +//@[45:57) StringComplete |'ServiceMap'| +//@[57:58) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + name: '[concat(\'SecurityInsights\', \'(\', parameters(\'workspaceName\'), \')\')]' +//@[28:32) Identifier |name| +//@[32:33) Colon |:| +//@[34:111) StringComplete |'[concat(\'SecurityInsights\', \'(\', parameters(\'workspaceName\'), \')\')]'| +//@[111:112) NewLine |\n| + marketplaceName: 'SecurityInsights' +//@[28:43) Identifier |marketplaceName| +//@[43:44) Colon |:| +//@[45:63) StringComplete |'SecurityInsights'| +//@[63:64) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + apiVersion: '2015-11-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2015-11-01-preview'| +//@[56:57) NewLine |\n| + type: 'Microsoft.OperationalInsights/workspaces/datasources' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:84) StringComplete |'Microsoft.OperationalInsights/workspaces/datasources'| +//@[84:85) NewLine |\n| + name: '[concat(parameters(\'workspaceName\'), \'/LinuxPerfCollection\')]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:97) StringComplete |'[concat(parameters(\'workspaceName\'), \'/LinuxPerfCollection\')]'| +//@[97:98) NewLine |\n| + kind: 'LinuxPerformanceCollection' +//@[24:28) Identifier |kind| +//@[28:29) Colon |:| +//@[30:58) StringComplete |'LinuxPerformanceCollection'| +//@[58:59) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + state: 'Enabled' +//@[26:31) Identifier |state| +//@[31:32) Colon |:| +//@[33:42) StringComplete |'Enabled'| +//@[42:43) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + apiVersion: '2015-11-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2015-11-01-preview'| +//@[56:57) NewLine |\n| + type: 'Microsoft.OperationalInsights/workspaces/dataSources' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:84) StringComplete |'Microsoft.OperationalInsights/workspaces/dataSources'| +//@[84:85) NewLine |\n| + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxDiskObject.armResourceName)]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:149) StringComplete |'[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxDiskObject.armResourceName)]'| +//@[149:150) NewLine |\n| + kind: 'LinuxPerformanceObject' +//@[24:28) Identifier |kind| +//@[28:29) Colon |:| +//@[30:54) StringComplete |'LinuxPerformanceObject'| +//@[54:55) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + performanceCounters: '[variables(\'vmInsightsPerfCounters\').linuxDiskArray]' +//@[26:45) Identifier |performanceCounters| +//@[45:46) Colon |:| +//@[47:103) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxDiskArray]'| +//@[103:104) NewLine |\n| + objectName: '[variables(\'vmInsightsPerfCounters\').linuxDiskObject.objectName]' +//@[26:36) Identifier |objectName| +//@[36:37) Colon |:| +//@[38:106) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxDiskObject.objectName]'| +//@[106:107) NewLine |\n| + instanceName: '[variables(\'vmInsightsPerfCounters\').linuxDiskObject.instanceName]' +//@[26:38) Identifier |instanceName| +//@[38:39) Colon |:| +//@[40:110) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxDiskObject.instanceName]'| +//@[110:111) NewLine |\n| + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').linuxDiskObject.intervalSeconds]' +//@[26:41) Identifier |intervalSeconds| +//@[41:42) Colon |:| +//@[43:116) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxDiskObject.intervalSeconds]'| +//@[116:117) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + apiVersion: '2015-11-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2015-11-01-preview'| +//@[56:57) NewLine |\n| + type: 'Microsoft.OperationalInsights/workspaces/dataSources' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:84) StringComplete |'Microsoft.OperationalInsights/workspaces/dataSources'| +//@[84:85) NewLine |\n| + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxMemoryObject.armResourceName)]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:151) StringComplete |'[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxMemoryObject.armResourceName)]'| +//@[151:152) NewLine |\n| + kind: 'LinuxPerformanceObject' +//@[24:28) Identifier |kind| +//@[28:29) Colon |:| +//@[30:54) StringComplete |'LinuxPerformanceObject'| +//@[54:55) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + performanceCounters: '[variables(\'vmInsightsPerfCounters\').linuxMemoryArray]' +//@[26:45) Identifier |performanceCounters| +//@[45:46) Colon |:| +//@[47:105) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxMemoryArray]'| +//@[105:106) NewLine |\n| + objectName: '[variables(\'vmInsightsPerfCounters\').linuxMemoryObject.objectName]' +//@[26:36) Identifier |objectName| +//@[36:37) Colon |:| +//@[38:108) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxMemoryObject.objectName]'| +//@[108:109) NewLine |\n| + instanceName: '[variables(\'vmInsightsPerfCounters\').linuxMemoryObject.instanceName]' +//@[26:38) Identifier |instanceName| +//@[38:39) Colon |:| +//@[40:112) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxMemoryObject.instanceName]'| +//@[112:113) NewLine |\n| + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').linuxMemoryObject.intervalSeconds]' +//@[26:41) Identifier |intervalSeconds| +//@[41:42) Colon |:| +//@[43:118) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxMemoryObject.intervalSeconds]'| +//@[118:119) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + apiVersion: '2015-11-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2015-11-01-preview'| +//@[56:57) NewLine |\n| + type: 'Microsoft.OperationalInsights/workspaces/dataSources' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:84) StringComplete |'Microsoft.OperationalInsights/workspaces/dataSources'| +//@[84:85) NewLine |\n| + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxCpuObject.armResourceName)]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:148) StringComplete |'[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxCpuObject.armResourceName)]'| +//@[148:149) NewLine |\n| + kind: 'LinuxPerformanceObject' +//@[24:28) Identifier |kind| +//@[28:29) Colon |:| +//@[30:54) StringComplete |'LinuxPerformanceObject'| +//@[54:55) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + performanceCounters: '[variables(\'vmInsightsPerfCounters\').linuxCpuArray]' +//@[26:45) Identifier |performanceCounters| +//@[45:46) Colon |:| +//@[47:102) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxCpuArray]'| +//@[102:103) NewLine |\n| + objectName: '[variables(\'vmInsightsPerfCounters\').linuxCpuObject.objectName]' +//@[26:36) Identifier |objectName| +//@[36:37) Colon |:| +//@[38:105) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxCpuObject.objectName]'| +//@[105:106) NewLine |\n| + instanceName: '[variables(\'vmInsightsPerfCounters\').linuxCpuObject.instanceName]' +//@[26:38) Identifier |instanceName| +//@[38:39) Colon |:| +//@[40:109) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxCpuObject.instanceName]'| +//@[109:110) NewLine |\n| + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').linuxCpuObject.intervalSeconds]' +//@[26:41) Identifier |intervalSeconds| +//@[41:42) Colon |:| +//@[43:115) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxCpuObject.intervalSeconds]'| +//@[115:116) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + apiVersion: '2015-11-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2015-11-01-preview'| +//@[56:57) NewLine |\n| + type: 'Microsoft.OperationalInsights/workspaces/dataSources' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:84) StringComplete |'Microsoft.OperationalInsights/workspaces/dataSources'| +//@[84:85) NewLine |\n| + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxNetworkObject.armResourceName)]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:152) StringComplete |'[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').linuxNetworkObject.armResourceName)]'| +//@[152:153) NewLine |\n| + kind: 'LinuxPerformanceObject' +//@[24:28) Identifier |kind| +//@[28:29) Colon |:| +//@[30:54) StringComplete |'LinuxPerformanceObject'| +//@[54:55) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + performanceCounters: '[variables(\'vmInsightsPerfCounters\').linuxNetworkArray]' +//@[26:45) Identifier |performanceCounters| +//@[45:46) Colon |:| +//@[47:106) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxNetworkArray]'| +//@[106:107) NewLine |\n| + objectName: '[variables(\'vmInsightsPerfCounters\').linuxNetworkObject.objectName]' +//@[26:36) Identifier |objectName| +//@[36:37) Colon |:| +//@[38:109) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxNetworkObject.objectName]'| +//@[109:110) NewLine |\n| + instanceName: '[variables(\'vmInsightsPerfCounters\').linuxNetworkObject.instanceName]' +//@[26:38) Identifier |instanceName| +//@[38:39) Colon |:| +//@[40:113) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxNetworkObject.instanceName]'| +//@[113:114) NewLine |\n| + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').linuxNetworkObject.intervalSeconds]' +//@[26:41) Identifier |intervalSeconds| +//@[41:42) Colon |:| +//@[43:119) StringComplete |'[variables(\'vmInsightsPerfCounters\').linuxNetworkObject.intervalSeconds]'| +//@[119:120) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + apiVersion: '2015-11-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2015-11-01-preview'| +//@[56:57) NewLine |\n| + type: 'Microsoft.OperationalInsights/workspaces/dataSources' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:84) StringComplete |'Microsoft.OperationalInsights/workspaces/dataSources'| +//@[84:85) NewLine |\n| + name: '[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].armName)]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:151) StringComplete |'[concat(parameters(\'workspaceName\'), \'/\', variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].armName)]'| +//@[151:152) NewLine |\n| + kind: 'WindowsPerformanceCounter' +//@[24:28) Identifier |kind| +//@[28:29) Colon |:| +//@[30:57) StringComplete |'WindowsPerformanceCounter'| +//@[57:58) NewLine |\n| + copy: { +//@[24:28) Identifier |copy| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + name: 'counterCopy' +//@[26:30) Identifier |name| +//@[30:31) Colon |:| +//@[32:45) StringComplete |'counterCopy'| +//@[45:46) NewLine |\n| + count: '[length(variables(\'vmInsightsPerfCounters\').windowsArray)]' +//@[26:31) Identifier |count| +//@[31:32) Colon |:| +//@[33:95) StringComplete |'[length(variables(\'vmInsightsPerfCounters\').windowsArray)]'| +//@[95:96) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + objectName: '[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].objectName]' +//@[26:36) Identifier |objectName| +//@[36:37) Colon |:| +//@[38:116) StringComplete |'[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].objectName]'| +//@[116:117) NewLine |\n| + instanceName: '[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].instanceName]' +//@[26:38) Identifier |instanceName| +//@[38:39) Colon |:| +//@[40:120) StringComplete |'[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].instanceName]'| +//@[120:121) NewLine |\n| + intervalSeconds: '[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].intervalSeconds]' +//@[26:41) Identifier |intervalSeconds| +//@[41:42) Colon |:| +//@[43:126) StringComplete |'[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].intervalSeconds]'| +//@[126:127) NewLine |\n| + counterName: '[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].counterName]' +//@[26:37) Identifier |counterName| +//@[37:38) Colon |:| +//@[39:118) StringComplete |'[variables(\'vmInsightsPerfCounters\').windowsArray[copyIndex()].counterName]'| +//@[118:119) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + apiVersion: '2015-11-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2015-11-01-preview'| +//@[56:57) NewLine |\n| + type: 'Microsoft.OperationsManagement/solutions' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:72) StringComplete |'Microsoft.OperationsManagement/solutions'| +//@[72:73) NewLine |\n| + name: '[concat(variables(\'batch1\').solutions[copyIndex()].Name)]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:91) StringComplete |'[concat(variables(\'batch1\').solutions[copyIndex()].Name)]'| +//@[91:92) NewLine |\n| + location: '[parameters(\'workspaceRegion\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:69) StringComplete |'[parameters(\'workspaceRegion\')]'| +//@[69:70) NewLine |\n| + copy: { +//@[24:28) Identifier |copy| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + name: 'solutionCopy' +//@[26:30) Identifier |name| +//@[30:31) Colon |:| +//@[32:46) StringComplete |'solutionCopy'| +//@[46:47) NewLine |\n| + count: '[length(variables(\'batch1\').solutions)]' +//@[26:31) Identifier |count| +//@[31:32) Colon |:| +//@[33:76) StringComplete |'[length(variables(\'batch1\').solutions)]'| +//@[76:77) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceResourceId: '[resourceId(\'Microsoft.OperationalInsights/workspaces/\', parameters(\'workspaceName\'))]' +//@[26:45) Identifier |workspaceResourceId| +//@[45:46) Colon |:| +//@[47:139) StringComplete |'[resourceId(\'Microsoft.OperationalInsights/workspaces/\', parameters(\'workspaceName\'))]'| +//@[139:140) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + plan: { +//@[24:28) Identifier |plan| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + name: '[variables(\'batch1\').solutions[copyIndex()].name]' +//@[26:30) Identifier |name| +//@[30:31) Colon |:| +//@[32:85) StringComplete |'[variables(\'batch1\').solutions[copyIndex()].name]'| +//@[85:86) NewLine |\n| + product: '[concat(\'OMSGallery/\', variables(\'batch1\').solutions[copyIndex()].marketplaceName)]' +//@[26:33) Identifier |product| +//@[33:34) Colon |:| +//@[35:124) StringComplete |'[concat(\'OMSGallery/\', variables(\'batch1\').solutions[copyIndex()].marketplaceName)]'| +//@[124:125) NewLine |\n| + promotionCode: '' +//@[26:39) Identifier |promotionCode| +//@[39:40) Colon |:| +//@[41:43) StringComplete |''| +//@[43:44) NewLine |\n| + publisher: 'Microsoft' +//@[26:35) Identifier |publisher| +//@[35:36) Colon |:| +//@[37:48) StringComplete |'Microsoft'| +//@[48:49) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-LA-Config' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:30) StringComplete |'Deploy-LA-Config'| +//@[30:31) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys Log Analytics and Automation account to the subscription where the policy is assigned.' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:117) StringComplete |'Deploys Log Analytics and Automation account to the subscription where the policy is assigned.'| +//@[117:118) NewLine |\n| + DisplayName: 'Deploy the Log Analytics in the subscription' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:67) StringComplete |'Deploy the Log Analytics in the subscription'| +//@[67:68) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + workspaceName: { +//@[10:23) Identifier |workspaceName| +//@[23:24) Colon |:| +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'workspaceName' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:42) StringComplete |'workspaceName'| +//@[42:43) NewLine |\n| + description: 'Provide name for log analytics workspace' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:69) StringComplete |'Provide name for log analytics workspace'| +//@[69:70) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + automationAccountName: { +//@[10:31) Identifier |automationAccountName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'automationAccountName' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:50) StringComplete |'automationAccountName'| +//@[50:51) NewLine |\n| + description: 'Provide name for automation account' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:64) StringComplete |'Provide name for automation account'| +//@[64:65) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + workspaceRegion: { +//@[10:25) Identifier |workspaceRegion| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'workspaceRegion' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:44) StringComplete |'workspaceRegion'| +//@[44:45) NewLine |\n| + description: 'Select Azure region for Log Analytics' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:66) StringComplete |'Select Azure region for Log Analytics'| +//@[66:67) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + automationRegion: { +//@[10:26) Identifier |automationRegion| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'automationRegion' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:45) StringComplete |'automationRegion'| +//@[45:46) NewLine |\n| + description: 'Select Azure region for Automation account' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:71) StringComplete |'Select Azure region for Automation account'| +//@[71:72) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + retentionInDays: { +//@[10:25) Identifier |retentionInDays| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: '30' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:30) StringComplete |'30'| +//@[30:31) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Data retention' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Data retention'| +//@[43:44) NewLine |\n| + description: 'Select data retention (days) for Log Analytics.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:76) StringComplete |'Select data retention (days) for Log Analytics.'| +//@[76:77) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + rgName: { +//@[10:16) Identifier |rgName| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'rgName' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'rgName'| +//@[35:36) NewLine |\n| + description: 'Provide name for resource group.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:61) StringComplete |'Provide name for resource group.'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Resources/subscriptions' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringComplete |'Microsoft.Resources/subscriptions'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.OperationalInsights/workspaces' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:62) StringComplete |'Microsoft.OperationalInsights/workspaces'| +//@[62:63) NewLine |\n| + deploymentScope: 'Subscription' +//@[14:29) Identifier |deploymentScope| +//@[29:30) Colon |:| +//@[31:45) StringComplete |'Subscription'| +//@[45:46) NewLine |\n| + existenceScope: 'Subscription' +//@[14:28) Identifier |existenceScope| +//@[28:29) Colon |:| +//@[30:44) StringComplete |'Subscription'| +//@[44:45) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'name' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:33) StringComplete |'name'| +//@[33:34) NewLine |\n| + like: '[parameters(\'workspaceName\')]' +//@[20:24) Identifier |like| +//@[24:25) Colon |:| +//@[26:59) StringComplete |'[parameters(\'workspaceName\')]'| +//@[59:60) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + location: 'northeurope' +//@[16:24) Identifier |location| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'northeurope'| +//@[39:40) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + rgName: { +//@[20:26) Identifier |rgName| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'rgName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:55) StringComplete |'[parameters(\'rgName\')]'| +//@[55:56) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + retentionInDays: { +//@[20:35) Identifier |retentionInDays| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + value: '[parameters(\'retentionInDays\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:64) StringComplete |'[parameters(\'retentionInDays\')]'| +//@[64:65) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + workspaceName: { +//@[20:33) Identifier |workspaceName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + value: '[parameters(\'workspaceName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:62) StringComplete |'[parameters(\'workspaceName\')]'| +//@[62:63) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + workspaceRegion: { +//@[20:35) Identifier |workspaceRegion| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + value: '[parameters(\'workspaceRegion\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:64) StringComplete |'[parameters(\'workspaceRegion\')]'| +//@[64:65) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + automationAccountName: { +//@[20:41) Identifier |automationAccountName| +//@[41:42) Colon |:| +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + value: '[parameters(\'automationAccountName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:70) StringComplete |'[parameters(\'automationAccountName\')]'| +//@[70:71) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + automationRegion: { +//@[20:36) Identifier |automationRegion| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + value: '[parameters(\'automationRegion\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:65) StringComplete |'[parameters(\'automationRegion\')]'| +//@[65:66) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:122) StringComplete |'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json'| +//@[122:123) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + rgName: { +//@[22:28) Identifier |rgName| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + workspaceName: { +//@[22:35) Identifier |workspaceName| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + workspaceRegion: { +//@[22:37) Identifier |workspaceRegion| +//@[37:38) Colon |:| +//@[39:40) LeftBrace |{| +//@[40:41) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + automationAccountName: { +//@[22:43) Identifier |automationAccountName| +//@[43:44) Colon |:| +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + automationRegion: { +//@[22:38) Identifier |automationRegion| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + retentionInDays: { +//@[22:37) Identifier |retentionInDays| +//@[37:38) Colon |:| +//@[39:40) LeftBrace |{| +//@[40:41) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/resourceGroups' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:66) StringComplete |'Microsoft.Resources/resourceGroups'| +//@[66:67) NewLine |\n| + apiVersion: '2018-05-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2018-05-01'| +//@[48:49) NewLine |\n| + name: '[parameters(\'rgName\')]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:56) StringComplete |'[parameters(\'rgName\')]'| +//@[56:57) NewLine |\n| + location: '[deployment().location]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:59) StringComplete |'[deployment().location]'| +//@[59:60) NewLine |\n| + properties: {} +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) RightBrace |}| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2018-05-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2018-05-01'| +//@[48:49) NewLine |\n| + name: 'log-analytics' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:45) StringComplete |'log-analytics'| +//@[45:46) NewLine |\n| + resourceGroup: '[parameters(\'rgName\')]' +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:65) StringComplete |'[parameters(\'rgName\')]'| +//@[65:66) NewLine |\n| + dependsOn: [ +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' +//@[26:105) StringComplete |'[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]'| +//@[105:106) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json' +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:118) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json'| +//@[118:119) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + apiversion: '2015-10-31' +//@[32:42) Identifier |apiversion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2015-10-31'| +//@[56:57) NewLine |\n| + location: '[parameters(\'AutomationRegion\')]' +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:78) StringComplete |'[parameters(\'AutomationRegion\')]'| +//@[78:79) NewLine |\n| + name: '[parameters(\'AutomationAccountName\')]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:79) StringComplete |'[parameters(\'AutomationAccountName\')]'| +//@[79:80) NewLine |\n| + type: 'Microsoft.Automation/automationAccounts' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:79) StringComplete |'Microsoft.Automation/automationAccounts'| +//@[79:80) NewLine |\n| + comments: 'Automation account for ' +//@[32:40) Identifier |comments| +//@[40:41) Colon |:| +//@[42:67) StringComplete |'Automation account for '| +//@[67:68) NewLine |\n| + properties: { +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + sku: { +//@[34:37) Identifier |sku| +//@[37:38) Colon |:| +//@[39:40) LeftBrace |{| +//@[40:41) NewLine |\n| + name: 'OMS' +//@[36:40) Identifier |name| +//@[40:41) Colon |:| +//@[42:47) StringComplete |'OMS'| +//@[47:48) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + apiVersion: '2017-03-15-preview' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:64) StringComplete |'2017-03-15-preview'| +//@[64:65) NewLine |\n| + location: '[parameters(\'workspaceRegion\')]' +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:77) StringComplete |'[parameters(\'workspaceRegion\')]'| +//@[77:78) NewLine |\n| + name: '[parameters(\'workspaceName\')]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:71) StringComplete |'[parameters(\'workspaceName\')]'| +//@[71:72) NewLine |\n| + type: 'Microsoft.OperationalInsights/workspaces' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:80) StringComplete |'Microsoft.OperationalInsights/workspaces'| +//@[80:81) NewLine |\n| + properties: { +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + sku: { +//@[34:37) Identifier |sku| +//@[37:38) Colon |:| +//@[39:40) LeftBrace |{| +//@[40:41) NewLine |\n| + name: 'pernode' +//@[36:40) Identifier |name| +//@[40:41) Colon |:| +//@[42:51) StringComplete |'pernode'| +//@[51:52) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + enableLogAccessUsingOnlyResourcePermissions: true +//@[34:77) Identifier |enableLogAccessUsingOnlyResourcePermissions| +//@[77:78) Colon |:| +//@[79:83) TrueKeyword |true| +//@[83:84) NewLine |\n| + retentionInDays: '[int(parameters(\'retentionInDays\'))]' +//@[34:49) Identifier |retentionInDays| +//@[49:50) Colon |:| +//@[51:91) StringComplete |'[int(parameters(\'retentionInDays\'))]'| +//@[91:92) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[32:41) Identifier |resources| +//@[41:42) Colon |:| +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + { +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + name: 'Automation' +//@[36:40) Identifier |name| +//@[40:41) Colon |:| +//@[42:54) StringComplete |'Automation'| +//@[54:55) NewLine |\n| + type: 'linkedServices' +//@[36:40) Identifier |type| +//@[40:41) Colon |:| +//@[42:58) StringComplete |'linkedServices'| +//@[58:59) NewLine |\n| + apiVersion: '2015-11-01-preview' +//@[36:46) Identifier |apiVersion| +//@[46:47) Colon |:| +//@[48:68) StringComplete |'2015-11-01-preview'| +//@[68:69) NewLine |\n| + dependsOn: [ +//@[36:45) Identifier |dependsOn| +//@[45:46) Colon |:| +//@[47:48) LeftSquare |[| +//@[48:49) NewLine |\n| + '[resourceId(\'Microsoft.OperationalInsights/workspaces/\', parameters(\'workspaceName\'))]' +//@[38:130) StringComplete |'[resourceId(\'Microsoft.OperationalInsights/workspaces/\', parameters(\'workspaceName\'))]'| +//@[130:131) NewLine |\n| + '[resourceId(\'Microsoft.Automation/automationAccounts/\', parameters(\'AutomationAccountName\'))]' +//@[38:137) StringComplete |'[resourceId(\'Microsoft.Automation/automationAccounts/\', parameters(\'AutomationAccountName\'))]'| +//@[137:138) NewLine |\n| + ] +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[36:46) Identifier |properties| +//@[46:47) Colon |:| +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + resourceId: '[concat(subscription().id, \'/resourceGroups/\', parameters(\'rgName\'), \'/providers/Microsoft.Automation/automationAccounts/\', parameters(\'AutomationAccountName\'))]' +//@[38:48) Identifier |resourceId| +//@[48:49) Colon |:| +//@[50:221) StringComplete |'[concat(subscription().id, \'/resourceGroups/\', parameters(\'rgName\'), \'/providers/Microsoft.Automation/automationAccounts/\', parameters(\'AutomationAccountName\'))]'| +//@[221:222) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + ] +//@[32:33) RightSquare |]| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + outputs: {} +//@[28:35) Identifier |outputs| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Log-Analytics' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:34) StringComplete |'Deploy-Log-Analytics'| +//@[34:35) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Logic Apps integration service environment to stream to a Log Analytics workspace when any Logic Apps integration service environment which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:330) StringComplete |'Deploys the diagnostic settings for Logic Apps integration service environment to stream to a Log Analytics workspace when any Logic Apps integration service environment which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[330:331) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Logic Apps integration service environment to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:123) StringComplete |'Deploy Diagnostic Settings for Logic Apps integration service environment to Log Analytics workspace'| +//@[123:124) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Logic/integrationAccounts' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:57) StringComplete |'Microsoft.Logic/integrationAccounts'| +//@[57:58) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Logic/integrationAccounts/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:96) StringComplete |'Microsoft.Logic/integrationAccounts/providers/diagnosticSettings'| +//@[96:97) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [] +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'IntegrationAccountTrackingEvents' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:74) StringComplete |'IntegrationAccountTrackingEvents'| +//@[74:75) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-LogicAppsISE' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:45) StringComplete |'Deploy-Diagnostics-LogicAppsISE'| +//@[45:46) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Logic Apps Workflow runtimeto stream to a Log Analytics workspace when any Logic Apps Workflow runtime which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:299) StringComplete |'Deploys the diagnostic settings for Logic Apps Workflow runtimeto stream to a Log Analytics workspace when any Logic Apps Workflow runtime which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[299:300) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Logic Apps Workflow runtime to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:108) StringComplete |'Deploy Diagnostic Settings for Logic Apps Workflow runtime to Log Analytics workspace'| +//@[108:109) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Logic/workflows' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:47) StringComplete |'Microsoft.Logic/workflows'| +//@[47:48) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Logic/workflows/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:86) StringComplete |'Microsoft.Logic/workflows/providers/diagnosticSettings'| +//@[86:87) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'WorkflowRuntime' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:57) StringComplete |'WorkflowRuntime'| +//@[57:58) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-LogicAppsWF' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:44) StringComplete |'Deploy-Diagnostics-LogicAppsWF'| +//@[44:45) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for MariaDB to stream to a Log Analytics workspace when any MariaDB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:261) StringComplete |'Deploys the diagnostic settings for MariaDB to stream to a Log Analytics workspace when any MariaDB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[261:262) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for MariaDB to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:88) StringComplete |'Deploy Diagnostic Settings for MariaDB to Log Analytics workspace'| +//@[88:89) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.DBforMariaDB/servers' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:52) StringComplete |'Microsoft.DBforMariaDB/servers'| +//@[52:53) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.DBforMariaDB/servers/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:91) StringComplete |'Microsoft.DBforMariaDB/servers/providers/diagnosticSettings'| +//@[91:92) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'MySqlSlowLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:55) StringComplete |'MySqlSlowLogs'| +//@[55:56) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'MySqlAuditLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:56) StringComplete |'MySqlAuditLogs'| +//@[56:57) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-MariaDB' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:40) StringComplete |'Deploy-Diagnostics-MariaDB'| +//@[40:41) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies the creation of Maria DB accounts with exposed public endpoints' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:105) StringComplete |'This policy denies the creation of Maria DB accounts with exposed public endpoints'| +//@[105:106) NewLine |\n| + DisplayName: 'Public network access should be disabled for MariaDB' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:75) StringComplete |'Public network access should be disabled for MariaDB'| +//@[75:76) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'SQL' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:25) StringComplete |'SQL'| +//@[25:26) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.DBforMariaDB/servers' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:56) StringComplete |'Microsoft.DBforMariaDB/servers'| +//@[56:57) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.DBforMariaDB/servers/publicNetworkAccess' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:75) StringComplete |'Microsoft.DBforMariaDB/servers/publicNetworkAccess'| +//@[75:76) NewLine |\n| + notequals: 'Disabled' +//@[16:25) Identifier |notequals| +//@[25:26) Colon |:| +//@[27:37) StringComplete |'Disabled'| +//@[37:38) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-PublicEndpoint-MariaDB' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:41) StringComplete |'Deny-PublicEndpoint-MariaDB'| +//@[41:42) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Machine Learning workspace to stream to a Log Analytics workspace when any Machine Learning workspace which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:298) StringComplete |'Deploys the diagnostic settings for Machine Learning workspace to stream to a Log Analytics workspace when any Machine Learning workspace which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[298:299) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Machine Learning workspace to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:107) StringComplete |'Deploy Diagnostic Settings for Machine Learning workspace to Log Analytics workspace'| +//@[107:108) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.MachineLearningServices/workspaces' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:66) StringComplete |'Microsoft.MachineLearningServices/workspaces'| +//@[66:67) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.MachineLearningServices/workspaces/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:105) StringComplete |'Microsoft.MachineLearningServices/workspaces/providers/diagnosticSettings'| +//@[105:106) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Run' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:45) StringComplete |'Run'| +//@[45:46) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Model' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:47) StringComplete |'Model'| +//@[47:48) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: true +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:45) TrueKeyword |true| +//@[45:46) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Quota' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:47) StringComplete |'Quota'| +//@[47:48) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Resource' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:50) StringComplete |'Resource'| +//@[50:51) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AmlComputeClusterEvent' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:64) StringComplete |'AmlComputeClusterEvent'| +//@[64:65) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AmlComputeClusterNodeEvent' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:68) StringComplete |'AmlComputeClusterNodeEvent'| +//@[68:69) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AmlComputeJobEvent' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:60) StringComplete |'AmlComputeJobEvent'| +//@[60:61) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AmlComputeCpuGpuUtilization' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:69) StringComplete |'AmlComputeCpuGpuUtilization'| +//@[69:70) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AmlRunStatusChangedEvent' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:66) StringComplete |'AmlRunStatusChangedEvent'| +//@[66:67) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-MlWorkspace' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:44) StringComplete |'Deploy-Diagnostics-MlWorkspace'| +//@[44:45) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Database for MySQL to stream to a Log Analytics workspace when any Database for MySQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:282) StringComplete |'Deploys the diagnostic settings for Database for MySQL to stream to a Log Analytics workspace when any Database for MySQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[282:283) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Database for MySQL to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:99) StringComplete |'Deploy Diagnostic Settings for Database for MySQL to Log Analytics workspace'| +//@[99:100) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.DBforMySQL/servers' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:50) StringComplete |'Microsoft.DBforMySQL/servers'| +//@[50:51) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.DBforMySQL/servers/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:89) StringComplete |'Microsoft.DBforMySQL/servers/providers/diagnosticSettings'| +//@[89:90) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'MySqlSlowLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:55) StringComplete |'MySqlSlowLogs'| +//@[55:56) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'MySqlAuditLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:56) StringComplete |'MySqlAuditLogs'| +//@[56:57) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-MySQL' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:38) StringComplete |'Deploy-Diagnostics-MySQL'| +//@[38:39) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies creation of MySql DB accounts with exposed public endpoints' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:101) StringComplete |'This policy denies creation of MySql DB accounts with exposed public endpoints'| +//@[101:102) NewLine |\n| + DisplayName: 'Public network access should be disabled for MySQL' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:73) StringComplete |'Public network access should be disabled for MySQL'| +//@[73:74) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'SQL' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:25) StringComplete |'SQL'| +//@[25:26) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.DBforMySQL/servers' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:54) StringComplete |'Microsoft.DBforMySQL/servers'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.DBforMySQL/servers/publicNetworkAccess' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:73) StringComplete |'Microsoft.DBforMySQL/servers/publicNetworkAccess'| +//@[73:74) NewLine |\n| + notequals: 'Disabled' +//@[16:25) Identifier |notequals| +//@[25:26) Colon |:| +//@[27:37) StringComplete |'Disabled'| +//@[37:38) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-PublicEndpoint-MySQL' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:39) StringComplete |'Deny-PublicEndpoint-MySQL'| +//@[39:40) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys an Azure DDoS Protection Standard plan' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:69) StringComplete |'Deploys an Azure DDoS Protection Standard plan'| +//@[69:70) NewLine |\n| + DisplayName: 'Deploy an Azure DDoS Protection Standard plan' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:68) StringComplete |'Deploy an Azure DDoS Protection Standard plan'| +//@[68:69) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + ddosName: { +//@[10:18) Identifier |ddosName| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'ddosName' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:37) StringComplete |'ddosName'| +//@[37:38) NewLine |\n| + description: 'Name of the Virtual WAN' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Name of the Virtual WAN'| +//@[52:53) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + ddosRegion: { +//@[10:20) Identifier |ddosRegion| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'ddosRegion' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:39) StringComplete |'ddosRegion'| +//@[39:40) NewLine |\n| + description: 'Select Azure region for Virtual WAN' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:64) StringComplete |'Select Azure region for Virtual WAN'| +//@[64:65) NewLine |\n| + strongType: 'location' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:36) StringComplete |'location'| +//@[36:37) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + rgName: { +//@[10:16) Identifier |rgName| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'rgName' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'rgName'| +//@[35:36) NewLine |\n| + description: 'Provide name for resource group.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:61) StringComplete |'Provide name for resource group.'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Resources/subscriptions' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringComplete |'Microsoft.Resources/subscriptions'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/ddosProtectionPlans' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Network/ddosProtectionPlans'| +//@[59:60) NewLine |\n| + deploymentScope: 'Subscription' +//@[14:29) Identifier |deploymentScope| +//@[29:30) Colon |:| +//@[31:45) StringComplete |'Subscription'| +//@[45:46) NewLine |\n| + existenceScope: 'ResourceGroup' +//@[14:28) Identifier |existenceScope| +//@[28:29) Colon |:| +//@[30:45) StringComplete |'ResourceGroup'| +//@[45:46) NewLine |\n| + resourceGroupName: '[parameters(\'rgName\')]' +//@[14:31) Identifier |resourceGroupName| +//@[31:32) Colon |:| +//@[33:59) StringComplete |'[parameters(\'rgName\')]'| +//@[59:60) NewLine |\n| + name: '[parameters(\'ddosName\')]' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:48) StringComplete |'[parameters(\'ddosName\')]'| +//@[48:49) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + location: 'northeurope' +//@[16:24) Identifier |location| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'northeurope'| +//@[39:40) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + rgName: { +//@[20:26) Identifier |rgName| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'rgName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:55) StringComplete |'[parameters(\'rgName\')]'| +//@[55:56) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + ddosname: { +//@[20:28) Identifier |ddosname| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[parameters(\'ddosname\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:57) StringComplete |'[parameters(\'ddosname\')]'| +//@[57:58) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + ddosregion: { +//@[20:30) Identifier |ddosregion| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + value: '[parameters(\'ddosRegion\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:59) StringComplete |'[parameters(\'ddosRegion\')]'| +//@[59:60) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:122) StringComplete |'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json'| +//@[122:123) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + rgName: { +//@[22:28) Identifier |rgName| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ddosname: { +//@[22:30) Identifier |ddosname| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ddosRegion: { +//@[22:32) Identifier |ddosRegion| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/resourceGroups' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:66) StringComplete |'Microsoft.Resources/resourceGroups'| +//@[66:67) NewLine |\n| + apiVersion: '2018-05-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2018-05-01'| +//@[48:49) NewLine |\n| + name: '[parameters(\'rgName\')]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:56) StringComplete |'[parameters(\'rgName\')]'| +//@[56:57) NewLine |\n| + location: '[deployment().location]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:59) StringComplete |'[deployment().location]'| +//@[59:60) NewLine |\n| + properties: {} +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) RightBrace |}| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2018-05-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2018-05-01'| +//@[48:49) NewLine |\n| + name: 'ddosprotection' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:46) StringComplete |'ddosprotection'| +//@[46:47) NewLine |\n| + resourceGroup: '[parameters(\'rgName\')]' +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:65) StringComplete |'[parameters(\'rgName\')]'| +//@[65:66) NewLine |\n| + dependsOn: [ +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' +//@[26:105) StringComplete |'[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]'| +//@[105:106) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json' +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:118) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json'| +//@[118:119) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + resources: [ +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Network/ddosProtectionPlans' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:77) StringComplete |'Microsoft.Network/ddosProtectionPlans'| +//@[77:78) NewLine |\n| + apiVersion: '2019-12-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2019-12-01'| +//@[56:57) NewLine |\n| + name: '[parameters(\'ddosName\')]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:66) StringComplete |'[parameters(\'ddosName\')]'| +//@[66:67) NewLine |\n| + location: '[parameters(\'ddosRegion\')]' +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:72) StringComplete |'[parameters(\'ddosRegion\')]'| +//@[72:73) NewLine |\n| + properties: {} +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) RightBrace |}| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + outputs: {} +//@[28:35) Identifier |outputs| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-DDoSProtection' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:35) StringComplete |'Deploy-DDoSProtection'| +//@[35:36) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies the creation of vNet Peerings under the assigned scope.' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:97) StringComplete |'This policy denies the creation of vNet Peerings under the assigned scope.'| +//@[97:98) NewLine |\n| + DisplayName: 'Deny vNet peering ' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:41) StringComplete |'Deny vNet peering '| +//@[41:42) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:78) StringComplete |'Microsoft.Network/virtualNetworks/virtualNetworkPeerings'| +//@[78:79) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-VNet-Peering' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:31) StringComplete |'Deny-VNet-Peering'| +//@[31:32) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies the creation of a private DNS in the current scope, used in combination with policies that create centralized private DNS in connectivity subscription' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:192) StringComplete |'This policy denies the creation of a private DNS in the current scope, used in combination with policies that create centralized private DNS in connectivity subscription'| +//@[192:193) NewLine |\n| + DisplayName: 'Deny the creation of private DNS' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:55) StringComplete |'Deny the creation of private DNS'| +//@[55:56) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/privateDnsZones' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:55) StringComplete |'Microsoft.Network/privateDnsZones'| +//@[55:56) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-Private-DNS-Zones' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:36) StringComplete |'Deny-Private-DNS-Zones'| +//@[36:37) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies creation of Public IPs under the assigned scope.' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:90) StringComplete |'This policy denies creation of Public IPs under the assigned scope.'| +//@[90:91) NewLine |\n| + DisplayName: 'Deny the creation of public IP' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:53) StringComplete |'Deny the creation of public IP'| +//@[53:54) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/publicIPAddresses' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:57) StringComplete |'Microsoft.Network/publicIPAddresses'| +//@[57:58) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-PublicIP' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:27) StringComplete |'Deny-PublicIP'| +//@[27:28) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Network Interfaces to stream to a Log Analytics workspace when any Network Interfaces which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:282) StringComplete |'Deploys the diagnostic settings for Network Interfaces to stream to a Log Analytics workspace when any Network Interfaces which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[282:283) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Network Interfaces to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:99) StringComplete |'Deploy Diagnostic Settings for Network Interfaces to Log Analytics workspace'| +//@[99:100) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/networkInterfaces' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:57) StringComplete |'Microsoft.Network/networkInterfaces'| +//@[57:58) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Network/networkInterfaces/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:96) StringComplete |'Microsoft.Network/networkInterfaces/providers/diagnosticSettings'| +//@[96:97) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-NIC' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:36) StringComplete |'Deploy-Diagnostics-NIC'| +//@[36:37) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Public IP addresses to stream to a Log Analytics workspace when any Public IP addresses which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:284) StringComplete |'Deploys the diagnostic settings for Public IP addresses to stream to a Log Analytics workspace when any Public IP addresses which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[284:285) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Public IP addresses to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:100) StringComplete |'Deploy Diagnostic Settings for Public IP addresses to Log Analytics workspace'| +//@[100:101) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/publicIPAddresses' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:57) StringComplete |'Microsoft.Network/publicIPAddresses'| +//@[57:58) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Network/publicIPAddresses/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:96) StringComplete |'Microsoft.Network/publicIPAddresses/providers/diagnosticSettings'| +//@[96:97) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DDoSProtectionNotifications' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:69) StringComplete |'DDoSProtectionNotifications'| +//@[69:70) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DDoSMitigationFlowLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:64) StringComplete |'DDoSMitigationFlowLogs'| +//@[64:65) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DDoSMitigationReports' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:63) StringComplete |'DDoSMitigationReports'| +//@[63:64) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-PublicIP' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:41) StringComplete |'Deploy-Diagnostics-PublicIP'| +//@[41:42) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys NSG flow logs and traffic analytics to a storageaccountid with a specfied retention period.' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:122) StringComplete |'Deploys NSG flow logs and traffic analytics to a storageaccountid with a specfied retention period.'| +//@[122:123) NewLine |\n| + DisplayName: 'Deploys NSG flow logs and traffic analytics' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:66) StringComplete |'Deploys NSG flow logs and traffic analytics'| +//@[66:67) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + retention: { +//@[10:19) Identifier |retention| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Integer' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:27) StringComplete |'Integer'| +//@[27:28) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Retention' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:38) StringComplete |'Retention'| +//@[38:39) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: 5 +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:27) Integer |5| +//@[27:28) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + storageAccountResourceId: { +//@[10:34) Identifier |storageAccountResourceId| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Storage Account Resource Id' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:56) StringComplete |'Storage Account Resource Id'| +//@[56:57) NewLine |\n| + strongType: 'Microsoft.Storage/storageAccounts' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:61) StringComplete |'Microsoft.Storage/storageAccounts'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + trafficAnalyticsInterval: { +//@[10:34) Identifier |trafficAnalyticsInterval| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'Integer' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:27) StringComplete |'Integer'| +//@[27:28) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Traffic Analytics processing interval mins (10/60)' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Traffic Analytics processing interval mins (10/60)'| +//@[79:80) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: 60 +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:28) Integer |60| +//@[28:29) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + flowAnalyticsEnabled: { +//@[10:30) Identifier |flowAnalyticsEnabled| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'Boolean' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:27) StringComplete |'Boolean'| +//@[27:28) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable Traffic Analytics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:53) StringComplete |'Enable Traffic Analytics'| +//@[53:54) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: false +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:31) FalseKeyword |false| +//@[31:32) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + displayName: 'Resource ID of Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:67) StringComplete |'Resource ID of Log Analytics workspace'| +//@[67:68) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: '' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:28) StringComplete |''| +//@[28:29) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/networkSecurityGroups' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:61) StringComplete |'Microsoft.Network/networkSecurityGroups'| +//@[61:62) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/networkWatchers/flowLogs' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:64) StringComplete |'Microsoft.Network/networkWatchers/flowLogs'| +//@[64:65) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + resourceGroupName: 'NetworkWatcherRG' +//@[14:31) Identifier |resourceGroupName| +//@[31:32) Colon |:| +//@[33:51) StringComplete |'NetworkWatcherRG'| +//@[51:52) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Network/networkWatchers/flowLogs/enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Network/networkWatchers/flowLogs/enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Network/networkWatchers/flowLogs/flowAnalyticsConfiguration.networkWatcherFlowAnalyticsConfiguration.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:147) StringComplete |'Microsoft.Network/networkWatchers/flowLogs/flowAnalyticsConfiguration.networkWatcherFlowAnalyticsConfiguration.enabled'| +//@[147:148) NewLine |\n| + equals: '[parameters(\'flowAnalyticsEnabled\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:68) StringComplete |'[parameters(\'flowAnalyticsEnabled\')]'| +//@[68:69) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + networkSecurityGroupName: { +//@[20:44) Identifier |networkSecurityGroupName| +//@[44:45) Colon |:| +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceGroupName: { +//@[20:37) Identifier |resourceGroupName| +//@[37:38) Colon |:| +//@[39:40) LeftBrace |{| +//@[40:41) NewLine |\n| + value: '[resourceGroup().name]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:53) StringComplete |'[resourceGroup().name]'| +//@[53:54) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + storageAccountResourceId: { +//@[20:44) Identifier |storageAccountResourceId| +//@[44:45) Colon |:| +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + value: '[parameters(\'storageAccountResourceId\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:73) StringComplete |'[parameters(\'storageAccountResourceId\')]'| +//@[73:74) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + retention: { +//@[20:29) Identifier |retention| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) NewLine |\n| + value: '[parameters(\'retention\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:58) StringComplete |'[parameters(\'retention\')]'| +//@[58:59) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + flowAnalyticsEnabled: { +//@[20:40) Identifier |flowAnalyticsEnabled| +//@[40:41) Colon |:| +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + value: '[parameters(\'flowAnalyticsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:69) StringComplete |'[parameters(\'flowAnalyticsEnabled\')]'| +//@[69:70) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + trafficAnalyticsInterval: { +//@[20:44) Identifier |trafficAnalyticsInterval| +//@[44:45) Colon |:| +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + value: '[parameters(\'trafficAnalyticsInterval\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:73) StringComplete |'[parameters(\'trafficAnalyticsInterval\')]'| +//@[73:74) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:112) StringComplete |'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[112:113) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + networkSecurityGroupName: { +//@[22:46) Identifier |networkSecurityGroupName| +//@[46:47) Colon |:| +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + resourceGroupName: { +//@[22:39) Identifier |resourceGroupName| +//@[39:40) Colon |:| +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + storageAccountResourceId: { +//@[22:46) Identifier |storageAccountResourceId| +//@[46:47) Colon |:| +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + retention: { +//@[22:31) Identifier |retention| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + type: 'int' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:35) StringComplete |'int'| +//@[35:36) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + flowAnalyticsEnabled: { +//@[22:42) Identifier |flowAnalyticsEnabled| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + type: 'bool' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:36) StringComplete |'bool'| +//@[36:37) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + trafficAnalyticsInterval: { +//@[22:46) Identifier |trafficAnalyticsInterval| +//@[46:47) Colon |:| +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + type: 'int' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:35) StringComplete |'int'| +//@[35:36) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Network/networkWatchers/flowLogs' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:74) StringComplete |'Microsoft.Network/networkWatchers/flowLogs'| +//@[74:75) NewLine |\n| + apiVersion: '2020-05-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2020-05-01'| +//@[48:49) NewLine |\n| + name: '[take(concat(\'NetworkWatcher_\', toLower(parameters(\'location\')), \'/\', parameters(\'networkSecurityGroupName\'), \'-\', parameters(\'resourceGroupName\'), \'-flowlog\' ), 80)]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:213) StringComplete |'[take(concat(\'NetworkWatcher_\', toLower(parameters(\'location\')), \'/\', parameters(\'networkSecurityGroupName\'), \'-\', parameters(\'resourceGroupName\'), \'-flowlog\' ), 80)]'| +//@[213:214) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + targetResourceId: '[resourceId(parameters(\'resourceGroupName\'), \'Microsoft.Network/networkSecurityGroups\', parameters(\'networkSecurityGroupName\'))]' +//@[26:42) Identifier |targetResourceId| +//@[42:43) Colon |:| +//@[44:180) StringComplete |'[resourceId(parameters(\'resourceGroupName\'), \'Microsoft.Network/networkSecurityGroups\', parameters(\'networkSecurityGroupName\'))]'| +//@[180:181) NewLine |\n| + storageId: '[parameters(\'storageAccountResourceId\')]' +//@[26:35) Identifier |storageId| +//@[35:36) Colon |:| +//@[37:81) StringComplete |'[parameters(\'storageAccountResourceId\')]'| +//@[81:82) NewLine |\n| + enabled: true +//@[26:33) Identifier |enabled| +//@[33:34) Colon |:| +//@[35:39) TrueKeyword |true| +//@[39:40) NewLine |\n| + retentionPolicy: { +//@[26:41) Identifier |retentionPolicy| +//@[41:42) Colon |:| +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + enabled: true +//@[28:35) Identifier |enabled| +//@[35:36) Colon |:| +//@[37:41) TrueKeyword |true| +//@[41:42) NewLine |\n| + days: '[parameters(\'retention\')]' +//@[28:32) Identifier |days| +//@[32:33) Colon |:| +//@[34:63) StringComplete |'[parameters(\'retention\')]'| +//@[63:64) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + format: { +//@[26:32) Identifier |format| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + type: 'JSON' +//@[28:32) Identifier |type| +//@[32:33) Colon |:| +//@[34:40) StringComplete |'JSON'| +//@[40:41) NewLine |\n| + version: 2 +//@[28:35) Identifier |version| +//@[35:36) Colon |:| +//@[37:38) Integer |2| +//@[38:39) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + flowAnalyticsConfiguration: { +//@[26:52) Identifier |flowAnalyticsConfiguration| +//@[52:53) Colon |:| +//@[54:55) LeftBrace |{| +//@[55:56) NewLine |\n| + networkWatcherFlowAnalyticsConfiguration: { +//@[28:68) Identifier |networkWatcherFlowAnalyticsConfiguration| +//@[68:69) Colon |:| +//@[70:71) LeftBrace |{| +//@[71:72) NewLine |\n| + enabled: '[bool(parameters(\'flowAnalyticsEnabled\'))]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:85) StringComplete |'[bool(parameters(\'flowAnalyticsEnabled\'))]'| +//@[85:86) NewLine |\n| + trafficAnalyticsInterval: '[parameters(\'trafficAnalyticsInterval\')]' +//@[30:54) Identifier |trafficAnalyticsInterval| +//@[54:55) Colon |:| +//@[56:100) StringComplete |'[parameters(\'trafficAnalyticsInterval\')]'| +//@[100:101) NewLine |\n| + workspaceId: '[if(not(empty(parameters(\'logAnalytics\'))), reference(parameters(\'logAnalytics\'), \'2020-03-01-preview\', \'Full\').properties.customerId, json(\'null\')) ]' +//@[30:41) Identifier |workspaceId| +//@[41:42) Colon |:| +//@[43:205) StringComplete |'[if(not(empty(parameters(\'logAnalytics\'))), reference(parameters(\'logAnalytics\'), \'2020-03-01-preview\', \'Full\').properties.customerId, json(\'null\')) ]'| +//@[205:206) NewLine |\n| + workspaceRegion: '[if(not(empty(parameters(\'logAnalytics\'))), reference(parameters(\'logAnalytics\'), \'2020-03-01-preview\', \'Full\').location, json(\'null\')) ]' +//@[30:45) Identifier |workspaceRegion| +//@[45:46) Colon |:| +//@[47:196) StringComplete |'[if(not(empty(parameters(\'logAnalytics\'))), reference(parameters(\'logAnalytics\'), \'2020-03-01-preview\', \'Full\').location, json(\'null\')) ]'| +//@[196:197) NewLine |\n| + workspaceResourceId: '[if(not(empty(parameters(\'logAnalytics\'))), parameters(\'logAnalytics\'), json(\'null\'))]' +//@[30:49) Identifier |workspaceResourceId| +//@[49:50) Colon |:| +//@[51:145) StringComplete |'[if(not(empty(parameters(\'logAnalytics\'))), parameters(\'logAnalytics\'), json(\'null\'))]'| +//@[145:146) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Nsg-FlowLogs' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:33) StringComplete |'Deploy-Nsg-FlowLogs'| +//@[33:34) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies the creation of a subsnet with out an Network Security Group. NSG help to protect traffic across subnet-level.' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:152) StringComplete |'This policy denies the creation of a subsnet with out an Network Security Group. NSG help to protect traffic across subnet-level.'| +//@[152:153) NewLine |\n| + DisplayName: 'Subnets should have a Network Security Group ' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:68) StringComplete |'Subnets should have a Network Security Group '| +//@[68:69) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Network/virtualNetworks/subnets' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:67) StringComplete |'Microsoft.Network/virtualNetworks/subnets'| +//@[67:68) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.Network/virtualNetworks/subnets/networkSecurityGroup.id' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:90) StringComplete |'Microsoft.Network/virtualNetworks/subnets/networkSecurityGroup.id'| +//@[90:91) NewLine |\n| + exists: 'false' +//@[16:22) Identifier |exists| +//@[22:23) Colon |:| +//@[24:31) StringComplete |'false'| +//@[31:32) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-Subnet-Without-Nsg' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:37) StringComplete |'Deny-Subnet-Without-Nsg'| +//@[37:38) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + displayName: 'Subnets should have a User Defined Route' +//@[8:19) Identifier |displayName| +//@[19:20) Colon |:| +//@[21:63) StringComplete |'Subnets should have a User Defined Route'| +//@[63:64) NewLine |\n| + policyType: 'Custom' +//@[8:18) Identifier |policyType| +//@[18:19) Colon |:| +//@[20:28) StringComplete |'Custom'| +//@[28:29) NewLine |\n| + mode: 'Indexed' +//@[8:12) Identifier |mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + description: 'This policy denies the creation of a subsnet with out a User Defined Route.' +//@[8:19) Identifier |description| +//@[19:20) Colon |:| +//@[21:98) StringComplete |'This policy denies the creation of a subsnet with out a User Defined Route.'| +//@[98:99) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + parameters: { +//@[8:18) Identifier |parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + policyRule: { +//@[8:18) Identifier |policyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Network/virtualNetworks/subnets' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:67) StringComplete |'Microsoft.Network/virtualNetworks/subnets'| +//@[67:68) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.Network/virtualNetworks/subnets/routeTable.id' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:80) StringComplete |'Microsoft.Network/virtualNetworks/subnets/routeTable.id'| +//@[80:81) NewLine |\n| + exists: 'false' +//@[16:22) Identifier |exists| +//@[22:23) Colon |:| +//@[24:31) StringComplete |'false'| +//@[31:32) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-Subnet-Without-Udr' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:37) StringComplete |'Deny-Subnet-Without-Udr'| +//@[37:38) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + Properties: { +//@[6:16) Identifier |Properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies the creation of vNet Peerings outside of the same subscriptions under the assigned scope.' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:131) StringComplete |'This policy denies the creation of vNet Peerings outside of the same subscriptions under the assigned scope.'| +//@[131:132) NewLine |\n| + DisplayName: 'Deny vNet peering cross subscription.' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:60) StringComplete |'Deny vNet peering cross subscription.'| +//@[60:61) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:28) StringComplete |'1.0.0.0'| +//@[28:29) NewLine |\n| + category: 'Network' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:82) StringComplete |'Microsoft.Network/virtualNetworks/virtualNetworkPeerings'| +//@[82:83) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings/remoteVirtualNetwork.id' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:105) StringComplete |'Microsoft.Network/virtualNetworks/virtualNetworkPeerings/remoteVirtualNetwork.id'| +//@[105:106) NewLine |\n| + notcontains: '[subscription().id]' +//@[16:27) Identifier |notcontains| +//@[27:28) Colon |:| +//@[29:50) StringComplete |'[subscription().id]'| +//@[50:51) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-VNET-Peer-Cross-Sub' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:38) StringComplete |'Deny-VNET-Peer-Cross-Sub'| +//@[38:39) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Network Security Groups to stream to a Log Analytics workspace when any Network Security Groups which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:292) StringComplete |'Deploys the diagnostic settings for Network Security Groups to stream to a Log Analytics workspace when any Network Security Groups which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[292:293) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Network Security Groups to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:104) StringComplete |'Deploy Diagnostic Settings for Network Security Groups to Log Analytics workspace'| +//@[104:105) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/networkSecurityGroups' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:61) StringComplete |'Microsoft.Network/networkSecurityGroups'| +//@[61:62) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Network/networkSecurityGroups/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:100) StringComplete |'Microsoft.Network/networkSecurityGroups/providers/diagnosticSettings'| +//@[100:101) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [] +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'NetworkSecurityGroupEvent' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:67) StringComplete |'NetworkSecurityGroupEvent'| +//@[67:68) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'NetworkSecurityGroupRuleCounter' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:73) StringComplete |'NetworkSecurityGroupRuleCounter'| +//@[73:74) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-NetworkSecurityGroups' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:54) StringComplete |'Deploy-Diagnostics-NetworkSecurityGroups'| +//@[54:55) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Database for PostgreSQL to stream to a Log Analytics workspace when any Database for PostgreSQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:292) StringComplete |'Deploys the diagnostic settings for Database for PostgreSQL to stream to a Log Analytics workspace when any Database for PostgreSQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[292:293) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Database for PostgreSQL to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:104) StringComplete |'Deploy Diagnostic Settings for Database for PostgreSQL to Log Analytics workspace'| +//@[104:105) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.DBforPostgreSQL/servers' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:55) StringComplete |'Microsoft.DBforPostgreSQL/servers'| +//@[55:56) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.DBforPostgreSQL/servers/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:94) StringComplete |'Microsoft.DBforPostgreSQL/servers/providers/diagnosticSettings'| +//@[94:95) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'PostgreSQLLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:56) StringComplete |'PostgreSQLLogs'| +//@[56:57) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'QueryStoreRuntimeStatistics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:69) StringComplete |'QueryStoreRuntimeStatistics'| +//@[69:70) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'QueryStoreWaitStatistics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:66) StringComplete |'QueryStoreWaitStatistics'| +//@[66:67) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-PostgreSQL' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:43) StringComplete |'Deploy-Diagnostics-PostgreSQL'| +//@[43:44) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies creation of Postgre SQL DB accounts with exposed public endpoints' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:107) StringComplete |'This policy denies creation of Postgre SQL DB accounts with exposed public endpoints'| +//@[107:108) NewLine |\n| + DisplayName: 'Public network access should be disabled for PostgreSql' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:78) StringComplete |'Public network access should be disabled for PostgreSql'| +//@[78:79) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'SQL' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:25) StringComplete |'SQL'| +//@[25:26) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.DBforPostgreSQL/servers' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringComplete |'Microsoft.DBforPostgreSQL/servers'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.DBforPostgreSQL/servers/publicNetworkAccess' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:78) StringComplete |'Microsoft.DBforPostgreSQL/servers/publicNetworkAccess'| +//@[78:79) NewLine |\n| + notequals: 'Disabled' +//@[16:25) Identifier |notequals| +//@[25:26) Colon |:| +//@[27:37) StringComplete |'Disabled'| +//@[37:38) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-PublicEndpoint-PostgreSql' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:44) StringComplete |'Deny-PublicEndpoint-PostgreSql'| +//@[44:45) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Power BI Embedded to stream to a Log Analytics workspace when any Power BI Embedded which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:280) StringComplete |'Deploys the diagnostic settings for Power BI Embedded to stream to a Log Analytics workspace when any Power BI Embedded which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[280:281) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Power BI Embedded to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:98) StringComplete |'Deploy Diagnostic Settings for Power BI Embedded to Log Analytics workspace'| +//@[98:99) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.PowerBIDedicated/capacities' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.PowerBIDedicated/capacities'| +//@[59:60) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.PowerBIDedicated/capacities/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:98) StringComplete |'Microsoft.PowerBIDedicated/capacities/providers/diagnosticSettings'| +//@[98:99) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Engine' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:48) StringComplete |'Engine'| +//@[48:49) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-PowerBIEmbedded' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:48) StringComplete |'Deploy-Diagnostics-PowerBIEmbedded'| +//@[48:49) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Recovery Services vaults to stream to a Log Analytics workspace when any Recovery Services vaults which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:294) StringComplete |'Deploys the diagnostic settings for Recovery Services vaults to stream to a Log Analytics workspace when any Recovery Services vaults which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[294:295) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Recovery Services vaults to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:105) StringComplete |'Deploy Diagnostic Settings for Recovery Services vaults to Log Analytics workspace'| +//@[105:106) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.RecoveryServices/vaults' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:55) StringComplete |'Microsoft.RecoveryServices/vaults'| +//@[55:56) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allof: [ +//@[16:21) Identifier |allof| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + count: { +//@[20:25) Identifier |count| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs[*]' +//@[22:27) Identifier |field| +//@[27:28) Colon |:| +//@[29:76) StringComplete |'Microsoft.Insights/diagnosticSettings/logs[*]'| +//@[76:77) NewLine |\n| + where: { +//@[22:27) Identifier |where| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) NewLine |\n| + allof: [ +//@[24:29) Identifier |allof| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs[*].Category' +//@[28:33) Identifier |field| +//@[33:34) Colon |:| +//@[35:91) StringComplete |'Microsoft.Insights/diagnosticSettings/logs[*].Category'| +//@[91:92) NewLine |\n| + in: [ +//@[28:30) Identifier |in| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + 'CoreAzureBackup' +//@[30:47) StringComplete |'CoreAzureBackup'| +//@[47:48) NewLine |\n| + 'AddonAzureBackupJobs' +//@[30:52) StringComplete |'AddonAzureBackupJobs'| +//@[52:53) NewLine |\n| + 'AddonAzureBackupAlerts' +//@[30:54) StringComplete |'AddonAzureBackupAlerts'| +//@[54:55) NewLine |\n| + 'AddonAzureBackupPolicy' +//@[30:54) StringComplete |'AddonAzureBackupPolicy'| +//@[54:55) NewLine |\n| + 'AddonAzureBackupStorage' +//@[30:55) StringComplete |'AddonAzureBackupStorage'| +//@[55:56) NewLine |\n| + 'AddonAzureBackupProtectedInstance' +//@[30:65) StringComplete |'AddonAzureBackupProtectedInstance'| +//@[65:66) NewLine |\n| + 'AzureBackupReport' +//@[30:49) StringComplete |'AzureBackupReport'| +//@[49:50) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs[*].Enabled' +//@[28:33) Identifier |field| +//@[33:34) Colon |:| +//@[35:90) StringComplete |'Microsoft.Insights/diagnosticSettings/logs[*].Enabled'| +//@[90:91) NewLine |\n| + equals: 'True' +//@[28:34) Identifier |equals| +//@[34:35) Colon |:| +//@[36:42) StringComplete |'True'| +//@[42:43) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + Equals: 7 +//@[20:26) Identifier |Equals| +//@[26:27) Colon |:| +//@[28:29) Integer |7| +//@[29:30) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logAnalyticsDestinationType' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:94) StringComplete |'Microsoft.Insights/diagnosticSettings/logAnalyticsDestinationType'| +//@[94:95) NewLine |\n| + equals: 'Dedicated' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:39) StringComplete |'Dedicated'| +//@[39:40) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.RecoveryServices/vaults/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:94) StringComplete |'Microsoft.RecoveryServices/vaults/providers/diagnosticSettings'| +//@[94:95) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + logAnalyticsDestinationType: 'Dedicated' +//@[26:53) Identifier |logAnalyticsDestinationType| +//@[53:54) Colon |:| +//@[55:66) StringComplete |'Dedicated'| +//@[66:67) NewLine |\n| + metrics: [] +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'CoreAzureBackup' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:57) StringComplete |'CoreAzureBackup'| +//@[57:58) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AddonAzureBackupAlerts' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:64) StringComplete |'AddonAzureBackupAlerts'| +//@[64:65) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AddonAzureBackupJobs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:62) StringComplete |'AddonAzureBackupJobs'| +//@[62:63) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AddonAzureBackupPolicy' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:64) StringComplete |'AddonAzureBackupPolicy'| +//@[64:65) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AddonAzureBackupProtectedInstance' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:75) StringComplete |'AddonAzureBackupProtectedInstance'| +//@[75:76) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AddonAzureBackupStorage' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:65) StringComplete |'AddonAzureBackupStorage'| +//@[65:66) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AzureBackupReport' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:59) StringComplete |'AzureBackupReport'| +//@[59:60) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-RecoveryVault' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:46) StringComplete |'Deploy-Diagnostics-RecoveryVault'| +//@[46:47) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Redis Cache to stream to a Log Analytics workspace when any Redis Cache which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:268) StringComplete |'Deploys the diagnostic settings for Redis Cache to stream to a Log Analytics workspace when any Redis Cache which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[268:269) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Redis Cache to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:92) StringComplete |'Deploy Diagnostic Settings for Redis Cache to Log Analytics workspace'| +//@[92:93) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Cache/redis' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:43) StringComplete |'Microsoft.Cache/redis'| +//@[43:44) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Cache/redis/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:82) StringComplete |'Microsoft.Cache/redis/providers/diagnosticSettings'| +//@[82:83) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [] +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) RightSquare |]| +//@[34:35) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-RedisCache' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:43) StringComplete |'Deploy-Diagnostics-RedisCache'| +//@[43:44) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Relay to stream to a Log Analytics workspace when any Relay which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:256) StringComplete |'Deploys the diagnostic settings for Relay to stream to a Log Analytics workspace when any Relay which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[256:257) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Relay to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:86) StringComplete |'Deploy Diagnostic Settings for Relay to Log Analytics workspace'| +//@[86:87) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Relay/namespaces' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:48) StringComplete |'Microsoft.Relay/namespaces'| +//@[48:49) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Relay/namespaces/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:87) StringComplete |'Microsoft.Relay/namespaces/providers/diagnosticSettings'| +//@[87:88) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'HybridConnectionsEvent' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:64) StringComplete |'HybridConnectionsEvent'| +//@[64:65) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-Relay' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:38) StringComplete |'Deploy-Diagnostics-Relay'| +//@[38:39) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Search Services to stream to a Log Analytics workspace when any Search Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:276) StringComplete |'Deploys the diagnostic settings for Search Services to stream to a Log Analytics workspace when any Search Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[276:277) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Search Services to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:96) StringComplete |'Deploy Diagnostic Settings for Search Services to Log Analytics workspace'| +//@[96:97) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Search/searchServices' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:53) StringComplete |'Microsoft.Search/searchServices'| +//@[53:54) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Search/searchServices/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:92) StringComplete |'Microsoft.Search/searchServices/providers/diagnosticSettings'| +//@[92:93) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'OperationLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:55) StringComplete |'OperationLogs'| +//@[55:56) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-SearchServices' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:47) StringComplete |'Deploy-Diagnostics-SearchServices'| +//@[47:48) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for ServiceBus to stream to a Log Analytics workspace when any ServiceBus which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:266) StringComplete |'Deploys the diagnostic settings for ServiceBus to stream to a Log Analytics workspace when any ServiceBus which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[266:267) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Service Bus namespaces to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:104) StringComplete |'Deploy Diagnostic Settings for Service Bus namespaces to Log Analytics workspace'| +//@[104:105) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.ServiceBus/namespaces' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:53) StringComplete |'Microsoft.ServiceBus/namespaces'| +//@[53:54) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.ServiceBus/namespaces/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:92) StringComplete |'Microsoft.ServiceBus/namespaces/providers/diagnosticSettings'| +//@[92:93) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'OperationalLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:57) StringComplete |'OperationalLogs'| +//@[57:58) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-ServiceBus' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:43) StringComplete |'Deploy-Diagnostics-ServiceBus'| +//@[43:44) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for SignalR to stream to a Log Analytics workspace when any SignalR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:260) StringComplete |'Deploys the diagnostic settings for SignalR to stream to a Log Analytics workspace when any SignalR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[260:261) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for SignalR to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:88) StringComplete |'Deploy Diagnostic Settings for SignalR to Log Analytics workspace'| +//@[88:89) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.SignalRService/SignalR' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:54) StringComplete |'Microsoft.SignalRService/SignalR'| +//@[54:55) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.SignalRService/SignalR/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:93) StringComplete |'Microsoft.SignalRService/SignalR/providers/diagnosticSettings'| +//@[93:94) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllLogs' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:49) StringComplete |'AllLogs'| +//@[49:50) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-SignalR' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:40) StringComplete |'Deploy-Diagnostics-SignalR'| +//@[40:41) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploy auditing settings to SQL Database when it not exist in the deployment' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:99) StringComplete |'Deploy auditing settings to SQL Database when it not exist in the deployment'| +//@[99:100) NewLine |\n| + DisplayName: 'Deploy SQL database auditing settings' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:60) StringComplete |'Deploy SQL database auditing settings'| +//@[60:61) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'SQL' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:25) StringComplete |'SQL'| +//@[25:26) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Sql/servers/databases' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:53) StringComplete |'Microsoft.Sql/servers/databases'| +//@[53:54) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Sql/servers/databases/auditingSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:70) StringComplete |'Microsoft.Sql/servers/databases/auditingSettings'| +//@[70:71) NewLine |\n| + name: 'default' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:29) StringComplete |'default'| +//@[29:30) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Sql/servers/databases/auditingSettings/state' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:83) StringComplete |'Microsoft.Sql/servers/databases/auditingSettings/state'| +//@[83:84) NewLine |\n| + equals: 'enabled' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:37) StringComplete |'enabled'| +//@[37:38) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Sql/servers/databases/auditingSettings/isAzureMonitorTargetEnabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Microsoft.Sql/servers/databases/auditingSettings/isAzureMonitorTargetEnabled'| +//@[105:106) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + sqlServerName: { +//@[22:35) Identifier |sqlServerName| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + sqlServerDataBaseName: { +//@[22:43) Identifier |sqlServerDataBaseName| +//@[43:44) Colon |:| +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + name: '[concat( parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/default\')]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:129) StringComplete |'[concat( parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/default\')]'| +//@[129:130) NewLine |\n| + type: 'Microsoft.Sql/servers/databases/auditingSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:80) StringComplete |'Microsoft.Sql/servers/databases/auditingSettings'| +//@[80:81) NewLine |\n| + apiVersion: '2017-03-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-03-01-preview'| +//@[56:57) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + state: 'enabled' +//@[26:31) Identifier |state| +//@[31:32) Colon |:| +//@[33:42) StringComplete |'enabled'| +//@[42:43) NewLine |\n| + auditActionsAndGroups: [ +//@[26:47) Identifier |auditActionsAndGroups| +//@[47:48) Colon |:| +//@[49:50) LeftSquare |[| +//@[50:51) NewLine |\n| + 'BATCH_COMPLETED_GROUP' +//@[28:51) StringComplete |'BATCH_COMPLETED_GROUP'| +//@[51:52) NewLine |\n| + 'DATABASE_OBJECT_CHANGE_GROUP' +//@[28:58) StringComplete |'DATABASE_OBJECT_CHANGE_GROUP'| +//@[58:59) NewLine |\n| + 'SCHEMA_OBJECT_CHANGE_GROUP' +//@[28:56) StringComplete |'SCHEMA_OBJECT_CHANGE_GROUP'| +//@[56:57) NewLine |\n| + 'BACKUP_RESTORE_GROUP' +//@[28:50) StringComplete |'BACKUP_RESTORE_GROUP'| +//@[50:51) NewLine |\n| + 'APPLICATION_ROLE_CHANGE_PASSWORD_GROUP' +//@[28:68) StringComplete |'APPLICATION_ROLE_CHANGE_PASSWORD_GROUP'| +//@[68:69) NewLine |\n| + 'DATABASE_PRINCIPAL_CHANGE_GROUP' +//@[28:61) StringComplete |'DATABASE_PRINCIPAL_CHANGE_GROUP'| +//@[61:62) NewLine |\n| + 'DATABASE_PRINCIPAL_IMPERSONATION_GROUP' +//@[28:68) StringComplete |'DATABASE_PRINCIPAL_IMPERSONATION_GROUP'| +//@[68:69) NewLine |\n| + 'DATABASE_ROLE_MEMBER_CHANGE_GROUP' +//@[28:63) StringComplete |'DATABASE_ROLE_MEMBER_CHANGE_GROUP'| +//@[63:64) NewLine |\n| + 'USER_CHANGE_PASSWORD_GROUP' +//@[28:56) StringComplete |'USER_CHANGE_PASSWORD_GROUP'| +//@[56:57) NewLine |\n| + 'DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP' +//@[28:68) StringComplete |'DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP'| +//@[68:69) NewLine |\n| + 'DATABASE_OBJECT_PERMISSION_CHANGE_GROUP' +//@[28:69) StringComplete |'DATABASE_OBJECT_PERMISSION_CHANGE_GROUP'| +//@[69:70) NewLine |\n| + 'DATABASE_PERMISSION_CHANGE_GROUP' +//@[28:62) StringComplete |'DATABASE_PERMISSION_CHANGE_GROUP'| +//@[62:63) NewLine |\n| + 'SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP' +//@[28:67) StringComplete |'SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP'| +//@[67:68) NewLine |\n| + 'SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP' +//@[28:70) StringComplete |'SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP'| +//@[70:71) NewLine |\n| + 'FAILED_DATABASE_AUTHENTICATION_GROUP' +//@[28:66) StringComplete |'FAILED_DATABASE_AUTHENTICATION_GROUP'| +//@[66:67) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + isAzureMonitorTargetEnabled: true +//@[26:53) Identifier |isAzureMonitorTargetEnabled| +//@[53:54) Colon |:| +//@[55:59) TrueKeyword |true| +//@[59:60) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + sqlServerName: { +//@[20:33) Identifier |sqlServerName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + value: '[first(split(field(\'fullname\'),\'/\'))]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:72) StringComplete |'[first(split(field(\'fullname\'),\'/\'))]'| +//@[72:73) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + sqlServerDataBaseName: { +//@[20:41) Identifier |sqlServerDataBaseName| +//@[41:42) Colon |:| +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3' +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Sql-AuditingSettings' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:41) StringComplete |'Deploy-Sql-AuditingSettings'| +//@[41:42) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploy the Transparent Data Encryption when it is not enabled in the deployment' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:102) StringComplete |'Deploy the Transparent Data Encryption when it is not enabled in the deployment'| +//@[102:103) NewLine |\n| + DisplayName: 'Deploy SQL Database Transparent Data Encryption ' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:71) StringComplete |'Deploy SQL Database Transparent Data Encryption '| +//@[71:72) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'SQL' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:25) StringComplete |'SQL'| +//@[25:26) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Sql/servers/databases' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:53) StringComplete |'Microsoft.Sql/servers/databases'| +//@[53:54) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Sql/servers/databases/transparentDataEncryption' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:79) StringComplete |'Microsoft.Sql/servers/databases/transparentDataEncryption'| +//@[79:80) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Sql/transparentDataEncryption.status' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:75) StringComplete |'Microsoft.Sql/transparentDataEncryption.status'| +//@[75:76) NewLine |\n| + equals: 'Enabled' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:37) StringComplete |'Enabled'| +//@[37:38) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + sqlServerName: { +//@[22:35) Identifier |sqlServerName| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + sqlServerDataBaseName: { +//@[22:43) Identifier |sqlServerDataBaseName| +//@[43:44) Colon |:| +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + name: '[concat( parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/current\')]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:129) StringComplete |'[concat( parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/current\')]'| +//@[129:130) NewLine |\n| + type: 'Microsoft.Sql/servers/databases/transparentDataEncryption' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:89) StringComplete |'Microsoft.Sql/servers/databases/transparentDataEncryption'| +//@[89:90) NewLine |\n| + apiVersion: '2014-04-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2014-04-01'| +//@[48:49) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + status: 'Enabled' +//@[26:32) Identifier |status| +//@[32:33) Colon |:| +//@[34:43) StringComplete |'Enabled'| +//@[43:44) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + sqlServerName: { +//@[20:33) Identifier |sqlServerName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + value: '[first(split(field(\'fullname\'),\'/\'))]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:72) StringComplete |'[first(split(field(\'fullname\'),\'/\'))]'| +//@[72:73) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + sqlServerDataBaseName: { +//@[20:41) Identifier |sqlServerDataBaseName| +//@[41:42) Colon |:| +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3' +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Sql-Tde' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:28) StringComplete |'Deploy-Sql-Tde'| +//@[28:29) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploy the security Alert Policies configuration with email admin accounts when it not exist in current configuration' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:140) StringComplete |'Deploy the security Alert Policies configuration with email admin accounts when it not exist in current configuration'| +//@[140:141) NewLine |\n| + DisplayName: 'Deploy SQL Database security Alert Policies configuration with email admin accounts' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:106) StringComplete |'Deploy SQL Database security Alert Policies configuration with email admin accounts'| +//@[106:107) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'SQL' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:25) StringComplete |'SQL'| +//@[25:26) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Sql/servers/databases' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:53) StringComplete |'Microsoft.Sql/servers/databases'| +//@[53:54) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Sql/servers/databases/securityAlertPolicies' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:75) StringComplete |'Microsoft.Sql/servers/databases/securityAlertPolicies'| +//@[75:76) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Sql/servers/databases/securityAlertPolicies/state' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:88) StringComplete |'Microsoft.Sql/servers/databases/securityAlertPolicies/state'| +//@[88:89) NewLine |\n| + equals: 'Enabled' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:37) StringComplete |'Enabled'| +//@[37:38) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + sqlServerName: { +//@[22:35) Identifier |sqlServerName| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + sqlServerDataBaseName: { +//@[22:43) Identifier |sqlServerDataBaseName| +//@[43:44) Colon |:| +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + name: '[concat(parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/default\')]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:128) StringComplete |'[concat(parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/default\')]'| +//@[128:129) NewLine |\n| + type: 'Microsoft.Sql/servers/databases/securityAlertPolicies' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:85) StringComplete |'Microsoft.Sql/servers/databases/securityAlertPolicies'| +//@[85:86) NewLine |\n| + apiVersion: '2018-06-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2018-06-01-preview'| +//@[56:57) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + state: 'Enabled' +//@[26:31) Identifier |state| +//@[31:32) Colon |:| +//@[33:42) StringComplete |'Enabled'| +//@[42:43) NewLine |\n| + disabledAlerts: [ +//@[26:40) Identifier |disabledAlerts| +//@[40:41) Colon |:| +//@[42:43) LeftSquare |[| +//@[43:44) NewLine |\n| + '' +//@[28:30) StringComplete |''| +//@[30:31) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + emailAddresses: [ +//@[26:40) Identifier |emailAddresses| +//@[40:41) Colon |:| +//@[42:43) LeftSquare |[| +//@[43:44) NewLine |\n| + 'admin@contoso.com' +//@[28:47) StringComplete |'admin@contoso.com'| +//@[47:48) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + emailAccountAdmins: true +//@[26:44) Identifier |emailAccountAdmins| +//@[44:45) Colon |:| +//@[46:50) TrueKeyword |true| +//@[50:51) NewLine |\n| + storageEndpoint: null +//@[26:41) Identifier |storageEndpoint| +//@[41:42) Colon |:| +//@[43:47) NullKeyword |null| +//@[47:48) NewLine |\n| + storageAccountAccessKey: '' +//@[26:49) Identifier |storageAccountAccessKey| +//@[49:50) Colon |:| +//@[51:53) StringComplete |''| +//@[53:54) NewLine |\n| + retentionDays: 0 +//@[26:39) Identifier |retentionDays| +//@[39:40) Colon |:| +//@[41:42) Integer |0| +//@[42:43) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + sqlServerName: { +//@[20:33) Identifier |sqlServerName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + value: '[first(split(field(\'fullname\'),\'/\'))]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:72) StringComplete |'[first(split(field(\'fullname\'),\'/\'))]'| +//@[72:73) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + sqlServerDataBaseName: { +//@[20:41) Identifier |sqlServerDataBaseName| +//@[41:42) Colon |:| +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3' +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Sql-SecurityAlertPolicies' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:46) StringComplete |'Deploy-Sql-SecurityAlertPolicies'| +//@[46:47) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploy SQL Database vulnerability Assessments when it not exist in the deployment. To the specific storage account in the parameters' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:156) StringComplete |'Deploy SQL Database vulnerability Assessments when it not exist in the deployment. To the specific storage account in the parameters'| +//@[156:157) NewLine |\n| + DisplayName: 'Deploy SQL Database vulnerability Assessments' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:68) StringComplete |'Deploy SQL Database vulnerability Assessments'| +//@[68:69) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + vulnerabilityAssessmentsEmail: { +//@[10:39) Identifier |vulnerabilityAssessmentsEmail| +//@[39:40) Colon |:| +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + description: 'The email address to send alerts' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:61) StringComplete |'The email address to send alerts'| +//@[61:62) NewLine |\n| + displayName: 'The email address to send alerts' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:61) StringComplete |'The email address to send alerts'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + vulnerabilityAssessmentsStorageID: { +//@[10:43) Identifier |vulnerabilityAssessmentsStorageID| +//@[43:44) Colon |:| +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + description: 'The storage account to store assessments' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:69) StringComplete |'The storage account to store assessments'| +//@[69:70) NewLine |\n| + displayName: 'The storage account to store assessments' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:69) StringComplete |'The storage account to store assessments'| +//@[69:70) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'SQL' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:25) StringComplete |'SQL'| +//@[25:26) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Sql/servers/databases' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:53) StringComplete |'Microsoft.Sql/servers/databases'| +//@[53:54) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Sql/servers/databases/vulnerabilityAssessments' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:78) StringComplete |'Microsoft.Sql/servers/databases/vulnerabilityAssessments'| +//@[78:79) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Sql/servers/databases/vulnerabilityAssessments/recurringScans.emails' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:107) StringComplete |'Microsoft.Sql/servers/databases/vulnerabilityAssessments/recurringScans.emails'| +//@[107:108) NewLine |\n| + equals: '[parameters(\'vulnerabilityAssessmentsEmail\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:77) StringComplete |'[parameters(\'vulnerabilityAssessmentsEmail\')]'| +//@[77:78) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Sql/servers/databases/vulnerabilityAssessments/recurringScans.isEnabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:110) StringComplete |'Microsoft.Sql/servers/databases/vulnerabilityAssessments/recurringScans.isEnabled'| +//@[110:111) NewLine |\n| + equals: true +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:32) TrueKeyword |true| +//@[32:33) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + sqlServerName: { +//@[22:35) Identifier |sqlServerName| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + sqlServerDataBaseName: { +//@[22:43) Identifier |sqlServerDataBaseName| +//@[43:44) Colon |:| +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + vulnerabilityAssessmentsEmail: { +//@[22:51) Identifier |vulnerabilityAssessmentsEmail| +//@[51:52) Colon |:| +//@[53:54) LeftBrace |{| +//@[54:55) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + vulnerabilityAssessmentsStorageID: { +//@[22:55) Identifier |vulnerabilityAssessmentsStorageID| +//@[55:56) Colon |:| +//@[57:58) LeftBrace |{| +//@[58:59) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + name: '[concat(parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/default\')]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:128) StringComplete |'[concat(parameters(\'sqlServerName\'),\'/\',parameters(\'sqlServerDataBaseName\'),\'/default\')]'| +//@[128:129) NewLine |\n| + type: 'Microsoft.Sql/servers/databases/vulnerabilityAssessments' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:88) StringComplete |'Microsoft.Sql/servers/databases/vulnerabilityAssessments'| +//@[88:89) NewLine |\n| + apiVersion: '2017-03-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-03-01-preview'| +//@[56:57) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + storageContainerPath: '[concat(\'https://\', last( split(parameters(\'vulnerabilityAssessmentsStorageID\') , \'/\') ) , \'.blob.core.windows.net/vulneraabilitylogs\')]' +//@[26:46) Identifier |storageContainerPath| +//@[46:47) Colon |:| +//@[48:195) StringComplete |'[concat(\'https://\', last( split(parameters(\'vulnerabilityAssessmentsStorageID\') , \'/\') ) , \'.blob.core.windows.net/vulneraabilitylogs\')]'| +//@[195:196) NewLine |\n| + storageAccountAccessKey: '[listkeys(parameters(\'vulnerabilityAssessmentsStorageID\'), providers(\'Microsoft.Storage\', \'storageAccounts\').apiVersions[0]).keys[0].value]' +//@[26:49) Identifier |storageAccountAccessKey| +//@[49:50) Colon |:| +//@[51:198) StringComplete |'[listkeys(parameters(\'vulnerabilityAssessmentsStorageID\'), providers(\'Microsoft.Storage\', \'storageAccounts\').apiVersions[0]).keys[0].value]'| +//@[198:199) NewLine |\n| + recurringScans: { +//@[26:40) Identifier |recurringScans| +//@[40:41) Colon |:| +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + isEnabled: true +//@[28:37) Identifier |isEnabled| +//@[37:38) Colon |:| +//@[39:43) TrueKeyword |true| +//@[43:44) NewLine |\n| + emailSubscriptionAdmins: false +//@[28:51) Identifier |emailSubscriptionAdmins| +//@[51:52) Colon |:| +//@[53:58) FalseKeyword |false| +//@[58:59) NewLine |\n| + emails: [ +//@[28:34) Identifier |emails| +//@[34:35) Colon |:| +//@[36:37) LeftSquare |[| +//@[37:38) NewLine |\n| + '[parameters(\'vulnerabilityAssessmentsEmail\')]' +//@[30:79) StringComplete |'[parameters(\'vulnerabilityAssessmentsEmail\')]'| +//@[79:80) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + sqlServerName: { +//@[20:33) Identifier |sqlServerName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + value: '[first(split(field(\'fullname\'),\'/\'))]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:72) StringComplete |'[first(split(field(\'fullname\'),\'/\'))]'| +//@[72:73) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + sqlServerDataBaseName: { +//@[20:41) Identifier |sqlServerDataBaseName| +//@[41:42) Colon |:| +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + vulnerabilityAssessmentsEmail: { +//@[20:49) Identifier |vulnerabilityAssessmentsEmail| +//@[49:50) Colon |:| +//@[51:52) LeftBrace |{| +//@[52:53) NewLine |\n| + value: '[parameters(\'vulnerabilityAssessmentsEmail\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:78) StringComplete |'[parameters(\'vulnerabilityAssessmentsEmail\')]'| +//@[78:79) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + vulnerabilityAssessmentsStorageID: { +//@[20:53) Identifier |vulnerabilityAssessmentsStorageID| +//@[53:54) Colon |:| +//@[55:56) LeftBrace |{| +//@[56:57) NewLine |\n| + value: '[parameters(\'vulnerabilityAssessmentsStorageID\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:82) StringComplete |'[parameters(\'vulnerabilityAssessmentsStorageID\')]'| +//@[82:83) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3' +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/056cd41c-7e88-42e1-933e-88ba6a50c9c3'| +//@[105:106) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Sql-vulnerabilityAssessments' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:49) StringComplete |'Deploy-Sql-vulnerabilityAssessments'| +//@[49:50) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for SQL Databases to stream to a Log Analytics workspace when any SQL Databases which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:273) StringComplete |'Deploys the diagnostic settings for SQL Databases to stream to a Log Analytics workspace when any SQL Databases which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[273:274) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for SQL Databases to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:95) StringComplete |'Deploy Diagnostic Settings for SQL Databases to Log Analytics workspace'| +//@[95:96) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Sql/servers/databases' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:53) StringComplete |'Microsoft.Sql/servers/databases'| +//@[53:54) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Sql/servers/databases/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:92) StringComplete |'Microsoft.Sql/servers/databases/providers/diagnosticSettings'| +//@[92:93) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'SQLInsights' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:53) StringComplete |'SQLInsights'| +//@[53:54) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AutomaticTuning' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:57) StringComplete |'AutomaticTuning'| +//@[57:58) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DevOpsOperationsAudit' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:63) StringComplete |'DevOpsOperationsAudit'| +//@[63:64) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'QueryStoreRuntimeStatistics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:69) StringComplete |'QueryStoreRuntimeStatistics'| +//@[69:70) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'QueryStoreWaitStatistics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:66) StringComplete |'QueryStoreWaitStatistics'| +//@[66:67) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Errors' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:48) StringComplete |'Errors'| +//@[48:49) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DatabaseWaitStatistics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:64) StringComplete |'DatabaseWaitStatistics'| +//@[64:65) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Timeouts' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:50) StringComplete |'Timeouts'| +//@[50:51) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Blocks' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:48) StringComplete |'Blocks'| +//@[48:49) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Deadlocks' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:51) StringComplete |'Deadlocks'| +//@[51:52) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'SQLSecurityAuditEvents' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:64) StringComplete |'SQLSecurityAuditEvents'| +//@[64:65) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'fullName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'fullName\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-SQLDBs' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:39) StringComplete |'Deploy-Diagnostics-SQLDBs'| +//@[39:40) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for SQL Elastic Pools to stream to a Log Analytics workspace when any SQL Elastic Pools which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:280) StringComplete |'Deploys the diagnostic settings for SQL Elastic Pools to stream to a Log Analytics workspace when any SQL Elastic Pools which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[280:281) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for SQL Elastic Pools to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:98) StringComplete |'Deploy Diagnostic Settings for SQL Elastic Pools to Log Analytics workspace'| +//@[98:99) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Sql/servers/elasticPools' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:56) StringComplete |'Microsoft.Sql/servers/elasticPools'| +//@[56:57) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Sql/servers/elasticPools/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:95) StringComplete |'Microsoft.Sql/servers/elasticPools/providers/diagnosticSettings'| +//@[95:96) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [] +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) RightSquare |]| +//@[34:35) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'fullName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'fullName\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-SQLElasticPools' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:48) StringComplete |'Deploy-Diagnostics-SQLElasticPools'| +//@[48:49) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for SQL Managed Instances to stream to a Log Analytics workspace when any SQL Managed Instances which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:288) StringComplete |'Deploys the diagnostic settings for SQL Managed Instances to stream to a Log Analytics workspace when any SQL Managed Instances which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[288:289) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for SQL Managed Instances to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:102) StringComplete |'Deploy Diagnostic Settings for SQL Managed Instances to Log Analytics workspace'| +//@[102:103) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Sql/managedInstances' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:52) StringComplete |'Microsoft.Sql/managedInstances'| +//@[52:53) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Sql/managedInstances/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:91) StringComplete |'Microsoft.Sql/managedInstances/providers/diagnosticSettings'| +//@[91:92) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ResourceUsageStats' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:60) StringComplete |'ResourceUsageStats'| +//@[60:61) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'SQLSecurityAuditEvents' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:64) StringComplete |'SQLSecurityAuditEvents'| +//@[64:65) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'DevOpsOperationsAudit' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:63) StringComplete |'DevOpsOperationsAudit'| +//@[63:64) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-SQLMI' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:38) StringComplete |'Deploy-Diagnostics-SQLMI'| +//@[38:39) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies creation of Sql servers with exposed public endpoints' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:95) StringComplete |'This policy denies creation of Sql servers with exposed public endpoints'| +//@[95:96) NewLine |\n| + DisplayName: 'Public network access on Azure SQL Database should be disabled' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:85) StringComplete |'Public network access on Azure SQL Database should be disabled'| +//@[85:86) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'SQL' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:25) StringComplete |'SQL'| +//@[25:26) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Sql/servers' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:47) StringComplete |'Microsoft.Sql/servers'| +//@[47:48) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.Sql/servers/publicNetworkAccess' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:66) StringComplete |'Microsoft.Sql/servers/publicNetworkAccess'| +//@[66:67) NewLine |\n| + notequals: 'Disabled' +//@[16:25) Identifier |notequals| +//@[25:26) Colon |:| +//@[27:37) StringComplete |'Disabled'| +//@[37:38) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-PublicEndpoint-Sql' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:37) StringComplete |'Deny-PublicEndpoint-Sql'| +//@[37:38) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies creation of storage accounts with IP Firewall exposed to all public endpoints' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:119) StringComplete |'This policy denies creation of storage accounts with IP Firewall exposed to all public endpoints'| +//@[119:120) NewLine |\n| + DisplayName: 'Public network access onStorage accounts should be disabled' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:82) StringComplete |'Public network access onStorage accounts should be disabled'| +//@[82:83) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + defaultValue: 'Deny' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Storage' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringComplete |'Storage'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Storage/storageAccounts' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringComplete |'Microsoft.Storage/storageAccounts'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.Storage/storageAccounts/networkAcls.defaultAction' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:84) StringComplete |'Microsoft.Storage/storageAccounts/networkAcls.defaultAction'| +//@[84:85) NewLine |\n| + notequals: 'Deny' +//@[16:25) Identifier |notequals| +//@[25:26) Colon |:| +//@[27:33) StringComplete |'Deny'| +//@[33:34) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deny-PublicEndpoint-Storage' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:41) StringComplete |'Deny-PublicEndpoint-Storage'| +//@[41:42) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Stream Analytics to stream to a Log Analytics workspace when any Stream Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:278) StringComplete |'Deploys the diagnostic settings for Stream Analytics to stream to a Log Analytics workspace when any Stream Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[278:279) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Stream Analytics to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:97) StringComplete |'Deploy Diagnostic Settings for Stream Analytics to Log Analytics workspace'| +//@[97:98) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.StreamAnalytics/streamingjobs' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:61) StringComplete |'Microsoft.StreamAnalytics/streamingjobs'| +//@[61:62) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.StreamAnalytics/streamingjobs/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:100) StringComplete |'Microsoft.StreamAnalytics/streamingjobs/providers/diagnosticSettings'| +//@[100:101) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Execution' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:51) StringComplete |'Execution'| +//@[51:52) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Authoring' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:51) StringComplete |'Authoring'| +//@[51:52) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-StreamAnalytics' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:48) StringComplete |'Deploy-Diagnostics-StreamAnalytics'| +//@[48:49) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Time Series Insights to stream to a Log Analytics workspace when any Time Series Insights which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:286) StringComplete |'Deploys the diagnostic settings for Time Series Insights to stream to a Log Analytics workspace when any Time Series Insights which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[286:287) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Time Series Insights to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:101) StringComplete |'Deploy Diagnostic Settings for Time Series Insights to Log Analytics workspace'| +//@[101:102) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.TimeSeriesInsights/environments' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:63) StringComplete |'Microsoft.TimeSeriesInsights/environments'| +//@[63:64) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.TimeSeriesInsights/environments/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:102) StringComplete |'Microsoft.TimeSeriesInsights/environments/providers/diagnosticSettings'| +//@[102:103) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Ingress' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:49) StringComplete |'Ingress'| +//@[49:50) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'Management' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'Management'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-TimeSeriesInsights' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:51) StringComplete |'Deploy-Diagnostics-TimeSeriesInsights'| +//@[51:52) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Traffic Manager to stream to a Log Analytics workspace when any Traffic Manager which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:276) StringComplete |'Deploys the diagnostic settings for Traffic Manager to stream to a Log Analytics workspace when any Traffic Manager which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[276:277) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Traffic Manager to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:96) StringComplete |'Deploy Diagnostic Settings for Traffic Manager to Log Analytics workspace'| +//@[96:97) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/trafficManagerProfiles' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:62) StringComplete |'Microsoft.Network/trafficManagerProfiles'| +//@[62:63) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Network/trafficManagerProfiles/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:101) StringComplete |'Microsoft.Network/trafficManagerProfiles/providers/diagnosticSettings'| +//@[101:102) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'ProbeHealthStatusEvents' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:65) StringComplete |'ProbeHealthStatusEvents'| +//@[65:66) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-TrafficManager' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:47) StringComplete |'Deploy-Diagnostics-TrafficManager'| +//@[47:48) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Virtual Machines to stream to a Log Analytics workspace when any Virtual Machines which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:278) StringComplete |'Deploys the diagnostic settings for Virtual Machines to stream to a Log Analytics workspace when any Virtual Machines which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[278:279) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Virtual Machines to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:97) StringComplete |'Deploy Diagnostic Settings for Virtual Machines to Log Analytics workspace'| +//@[97:98) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Compute/virtualMachines' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:55) StringComplete |'Microsoft.Compute/virtualMachines'| +//@[55:56) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Compute/virtualMachines/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:94) StringComplete |'Microsoft.Compute/virtualMachines/providers/diagnosticSettings'| +//@[94:95) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [] +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) RightSquare |]| +//@[34:35) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-VM' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:35) StringComplete |'Deploy-Diagnostics-VM'| +//@[35:36) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Virtual Network to stream to a Log Analytics workspace when any Virtual Network which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:276) StringComplete |'Deploys the diagnostic settings for Virtual Network to stream to a Log Analytics workspace when any Virtual Network which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[276:277) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Virtual Network to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:96) StringComplete |'Deploy Diagnostic Settings for Virtual Network to Log Analytics workspace'| +//@[96:97) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/virtualNetworks' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:55) StringComplete |'Microsoft.Network/virtualNetworks'| +//@[55:56) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Network/virtualNetworks/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:94) StringComplete |'Microsoft.Network/virtualNetworks/providers/diagnosticSettings'| +//@[94:95) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'VMProtectionAlerts' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:60) StringComplete |'VMProtectionAlerts'| +//@[60:61) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-VirtualNetwork' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:47) StringComplete |'Deploy-Diagnostics-VirtualNetwork'| +//@[47:48) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys Virtual Network to be used as hub virtual network in desired region in the subscription where this policy is assigned.' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:149) StringComplete |'Deploys Virtual Network to be used as hub virtual network in desired region in the subscription where this policy is assigned.'| +//@[149:150) NewLine |\n| + DisplayName: 'Deploy Virtual Network to be used as hub virtual network in desired region' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:97) StringComplete |'Deploy Virtual Network to be used as hub virtual network in desired region'| +//@[97:98) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + hubName: { +//@[10:17) Identifier |hubName| +//@[17:18) Colon |:| +//@[19:20) LeftBrace |{| +//@[20:21) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'hubName' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:36) StringComplete |'hubName'| +//@[36:37) NewLine |\n| + description: 'Name of the Hub' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:44) StringComplete |'Name of the Hub'| +//@[44:45) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + HUB: { +//@[10:13) Identifier |HUB| +//@[13:14) Colon |:| +//@[15:16) LeftBrace |{| +//@[16:17) NewLine |\n| + type: 'Object' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'Object'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'HUB' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:32) StringComplete |'HUB'| +//@[32:33) NewLine |\n| + description: 'Object describing HUB' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:50) StringComplete |'Object describing HUB'| +//@[50:51) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + vpngw: { +//@[10:15) Identifier |vpngw| +//@[15:16) Colon |:| +//@[17:18) LeftBrace |{| +//@[18:19) NewLine |\n| + type: 'Object' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'Object'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'vpngw' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:34) StringComplete |'vpngw'| +//@[34:35) NewLine |\n| + description: 'Object describing VPN gateway' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:58) StringComplete |'Object describing VPN gateway'| +//@[58:59) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: {} +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) RightBrace |}| +//@[28:29) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + ergw: { +//@[10:14) Identifier |ergw| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + type: 'Object' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'Object'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'ergw' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:33) StringComplete |'ergw'| +//@[33:34) NewLine |\n| + description: 'Object describing ExpressRoute gateway' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:67) StringComplete |'Object describing ExpressRoute gateway'| +//@[67:68) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: {} +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) RightBrace |}| +//@[28:29) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + azfw: { +//@[10:14) Identifier |azfw| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + type: 'Object' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'Object'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'ergw' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:33) StringComplete |'ergw'| +//@[33:34) NewLine |\n| + description: 'Object describing ExpressRoute gateway' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:67) StringComplete |'Object describing ExpressRoute gateway'| +//@[67:68) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: {} +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) RightBrace |}| +//@[28:29) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + rgName: { +//@[10:16) Identifier |rgName| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'rgName' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'rgName'| +//@[35:36) NewLine |\n| + description: 'Provide name for resource group.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:61) StringComplete |'Provide name for resource group.'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Resources/subscriptions' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringComplete |'Microsoft.Resources/subscriptions'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/virtualNetworks' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:55) StringComplete |'Microsoft.Network/virtualNetworks'| +//@[55:56) NewLine |\n| + name: '[parameters(\'hubName\')]' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:47) StringComplete |'[parameters(\'hubName\')]'| +//@[47:48) NewLine |\n| + deploymentScope: 'Subscription' +//@[14:29) Identifier |deploymentScope| +//@[29:30) Colon |:| +//@[31:45) StringComplete |'Subscription'| +//@[45:46) NewLine |\n| + existenceScope: 'ResourceGroup' +//@[14:28) Identifier |existenceScope| +//@[28:29) Colon |:| +//@[30:45) StringComplete |'ResourceGroup'| +//@[45:46) NewLine |\n| + ResourceGroupName: '[parameters(\'rgName\')]' +//@[14:31) Identifier |ResourceGroupName| +//@[31:32) Colon |:| +//@[33:59) StringComplete |'[parameters(\'rgName\')]'| +//@[59:60) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + location: 'northeurope' +//@[16:24) Identifier |location| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'northeurope'| +//@[39:40) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + rgName: { +//@[20:26) Identifier |rgName| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'rgName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:55) StringComplete |'[parameters(\'rgName\')]'| +//@[55:56) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + hubName: { +//@[20:27) Identifier |hubName| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) NewLine |\n| + value: '[parameters(\'hubName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:56) StringComplete |'[parameters(\'hubName\')]'| +//@[56:57) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + HUB: { +//@[20:23) Identifier |HUB| +//@[23:24) Colon |:| +//@[25:26) LeftBrace |{| +//@[26:27) NewLine |\n| + value: '[parameters(\'HUB\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[parameters(\'HUB\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + vpngw: { +//@[20:25) Identifier |vpngw| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'vpngw\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:54) StringComplete |'[parameters(\'vpngw\')]'| +//@[54:55) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + ergw: { +//@[20:24) Identifier |ergw| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + value: '[parameters(\'ergw\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:53) StringComplete |'[parameters(\'ergw\')]'| +//@[53:54) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + azfw: { +//@[20:24) Identifier |azfw| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + value: '[parameters(\'azfw\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:53) StringComplete |'[parameters(\'azfw\')]'| +//@[53:54) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:122) StringComplete |'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json'| +//@[122:123) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + hubName: { +//@[22:29) Identifier |hubName| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'Name of the HUB' +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:56) StringComplete |'Name of the HUB'| +//@[56:57) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + HUB: { +//@[22:25) Identifier |HUB| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + type: 'object' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'object'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'Object describing HUB' +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:62) StringComplete |'Object describing HUB'| +//@[62:63) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + vpngw: { +//@[22:27) Identifier |vpngw| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) NewLine |\n| + type: 'object' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'object'| +//@[38:39) NewLine |\n| + defaultValue: {} +//@[24:36) Identifier |defaultValue| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + metadata: { +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'Object describing VPN gateway' +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'Object describing VPN gateway'| +//@[70:71) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ergw: { +//@[22:26) Identifier |ergw| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + type: 'object' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'object'| +//@[38:39) NewLine |\n| + defaultValue: {} +//@[24:36) Identifier |defaultValue| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + metadata: { +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'Object describing ExpressRoute gateway' +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:79) StringComplete |'Object describing ExpressRoute gateway'| +//@[79:80) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + azfw: { +//@[22:26) Identifier |azfw| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + type: 'object' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'object'| +//@[38:39) NewLine |\n| + defaultValue: {} +//@[24:36) Identifier |defaultValue| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + metadata: { +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'Object describing the Azure Firewall' +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:77) StringComplete |'Object describing the Azure Firewall'| +//@[77:78) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + rgName: { +//@[22:28) Identifier |rgName| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'String' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'String'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + displayName: 'rgName' +//@[26:37) Identifier |displayName| +//@[37:38) Colon |:| +//@[39:47) StringComplete |'rgName'| +//@[47:48) NewLine |\n| + description: 'Provide name for resource group.' +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'Provide name for resource group.'| +//@[73:74) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/resourceGroups' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:66) StringComplete |'Microsoft.Resources/resourceGroups'| +//@[66:67) NewLine |\n| + apiVersion: '2020-06-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2020-06-01'| +//@[48:49) NewLine |\n| + name: '[parameters(\'rgName\')]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:56) StringComplete |'[parameters(\'rgName\')]'| +//@[56:57) NewLine |\n| + location: '[deployment().location]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:59) StringComplete |'[deployment().location]'| +//@[59:60) NewLine |\n| + properties: {} +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) RightBrace |}| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2020-06-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2020-06-01'| +//@[48:49) NewLine |\n| + name: '[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:101) StringComplete |'[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]'| +//@[101:102) NewLine |\n| + resourceGroup: '[parameters(\'rgName\')]' +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:65) StringComplete |'[parameters(\'rgName\')]'| +//@[65:66) NewLine |\n| + dependsOn: [ +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' +//@[26:105) StringComplete |'[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]'| +//@[105:106) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'https: //schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:121) StringComplete |'https: //schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[121:122) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + name: '[parameters(\'hubName\')]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:65) StringComplete |'[parameters(\'hubName\')]'| +//@[65:66) NewLine |\n| + type: 'Microsoft.Network/virtualNetworks' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:73) StringComplete |'Microsoft.Network/virtualNetworks'| +//@[73:74) NewLine |\n| + apiVersion: '2020-04-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2020-04-01'| +//@[56:57) NewLine |\n| + location: '[parameters(\'HUB\').location]' +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:74) StringComplete |'[parameters(\'HUB\').location]'| +//@[74:75) NewLine |\n| + properties: { +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + addressSpace: { +//@[34:46) Identifier |addressSpace| +//@[46:47) Colon |:| +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + addressPrefixes: [ +//@[36:51) Identifier |addressPrefixes| +//@[51:52) Colon |:| +//@[53:54) LeftSquare |[| +//@[54:55) NewLine |\n| + '[parameters(\'HUB\').addressPrefix]' +//@[38:75) StringComplete |'[parameters(\'HUB\').addressPrefix]'| +//@[75:76) NewLine |\n| + ] +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + subnets: [ +//@[34:41) Identifier |subnets| +//@[41:42) Colon |:| +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + { +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + name: 'Infrastructure' +//@[38:42) Identifier |name| +//@[42:43) Colon |:| +//@[44:60) StringComplete |'Infrastructure'| +//@[60:61) NewLine |\n| + properties: { +//@[38:48) Identifier |properties| +//@[48:49) Colon |:| +//@[50:51) LeftBrace |{| +//@[51:52) NewLine |\n| + addressPrefix: '[if(not(empty(parameters(\'HUB\').subnets.infra)),parameters(\'HUB\').subnets.infra, json(\'null\'))]' +//@[40:53) Identifier |addressPrefix| +//@[53:54) Colon |:| +//@[55:158) StringComplete |'[if(not(empty(parameters(\'HUB\').subnets.infra)),parameters(\'HUB\').subnets.infra, json(\'null\'))]'| +//@[158:159) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + { +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + name: 'AzureFirewallSubnet' +//@[38:42) Identifier |name| +//@[42:43) Colon |:| +//@[44:65) StringComplete |'AzureFirewallSubnet'| +//@[65:66) NewLine |\n| + properties: { +//@[38:48) Identifier |properties| +//@[48:49) Colon |:| +//@[50:51) LeftBrace |{| +//@[51:52) NewLine |\n| + addressPrefix: '[if(not(empty(parameters(\'HUB\').subnets.azfw)),parameters(\'HUB\').subnets.azfw, json(\'null\'))]' +//@[40:53) Identifier |addressPrefix| +//@[53:54) Colon |:| +//@[55:156) StringComplete |'[if(not(empty(parameters(\'HUB\').subnets.azfw)),parameters(\'HUB\').subnets.azfw, json(\'null\'))]'| +//@[156:157) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + { +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + name: 'GatewaySubnet' +//@[38:42) Identifier |name| +//@[42:43) Colon |:| +//@[44:59) StringComplete |'GatewaySubnet'| +//@[59:60) NewLine |\n| + properties: { +//@[38:48) Identifier |properties| +//@[48:49) Colon |:| +//@[50:51) LeftBrace |{| +//@[51:52) NewLine |\n| + addressPrefix: '[if(not(empty(parameters(\'HUB\').subnets.gw)),parameters(\'HUB\').subnets.gw, json(\'null\'))]' +//@[40:53) Identifier |addressPrefix| +//@[53:54) Colon |:| +//@[55:152) StringComplete |'[if(not(empty(parameters(\'HUB\').subnets.gw)),parameters(\'HUB\').subnets.gw, json(\'null\'))]'| +//@[152:153) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + ] +//@[34:35) RightSquare |]| +//@[35:36) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2020-06-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2020-06-01'| +//@[48:49) NewLine |\n| + condition: '[greater(length(parameters(\'vpngw\')),0)]' +//@[24:33) Identifier |condition| +//@[33:34) Colon |:| +//@[35:79) StringComplete |'[greater(length(parameters(\'vpngw\')),0)]'| +//@[79:80) NewLine |\n| + resourceGroup: '[parameters(\'rgName\')]' +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:65) StringComplete |'[parameters(\'rgName\')]'| +//@[65:66) NewLine |\n| + dependsOn: [ +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]' +//@[26:97) StringComplete |'[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]'| +//@[97:98) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + name: '[concat(parameters(\'hubName\'),\'-vpngw\')]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:76) StringComplete |'[concat(parameters(\'hubName\'),\'-vpngw\')]'| +//@[76:77) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:120) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[120:121) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + type: 'Microsoft.Network/publicIpAddresses' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:75) StringComplete |'Microsoft.Network/publicIpAddresses'| +//@[75:76) NewLine |\n| + location: '[parameters(\'HUB\').location]' +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:74) StringComplete |'[parameters(\'HUB\').location]'| +//@[74:75) NewLine |\n| + name: '[concat(parameters(\'vpngw\').name,\'-pip\')]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:85) StringComplete |'[concat(parameters(\'vpngw\').name,\'-pip\')]'| +//@[85:86) NewLine |\n| + properties: { +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + publicIPAllocationMethod: 'Dynamic' +//@[34:58) Identifier |publicIPAllocationMethod| +//@[58:59) Colon |:| +//@[60:69) StringComplete |'Dynamic'| +//@[69:70) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + tags: {} +//@[32:36) Identifier |tags| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + name: '[parameters(\'vpngw\').name]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:68) StringComplete |'[parameters(\'vpngw\').name]'| +//@[68:69) NewLine |\n| + type: 'Microsoft.Network/virtualNetworkGateways' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:80) StringComplete |'Microsoft.Network/virtualNetworkGateways'| +//@[80:81) NewLine |\n| + location: '[parameters(\'HUB\').location]' +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:74) StringComplete |'[parameters(\'HUB\').location]'| +//@[74:75) NewLine |\n| + dependsOn: [ +//@[32:41) Identifier |dependsOn| +//@[41:42) Colon |:| +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + '[concat(\'Microsoft.Network/publicIPAddresses/\', parameters(\'vpngw\').name,\'-pip\')]' +//@[34:123) StringComplete |'[concat(\'Microsoft.Network/publicIPAddresses/\', parameters(\'vpngw\').name,\'-pip\')]'| +//@[123:124) NewLine |\n| + ] +//@[32:33) RightSquare |]| +//@[33:34) NewLine |\n| + tags: {} +//@[32:36) Identifier |tags| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + properties: { +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + gatewayType: 'Vpn' +//@[34:45) Identifier |gatewayType| +//@[45:46) Colon |:| +//@[47:52) StringComplete |'Vpn'| +//@[52:53) NewLine |\n| + vpnType: '[parameters(\'vpngw\').vpnType]' +//@[34:41) Identifier |vpnType| +//@[41:42) Colon |:| +//@[43:76) StringComplete |'[parameters(\'vpngw\').vpnType]'| +//@[76:77) NewLine |\n| + ipConfigurations: [ +//@[34:50) Identifier |ipConfigurations| +//@[50:51) Colon |:| +//@[52:53) LeftSquare |[| +//@[53:54) NewLine |\n| + { +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + name: 'default' +//@[38:42) Identifier |name| +//@[42:43) Colon |:| +//@[44:53) StringComplete |'default'| +//@[53:54) NewLine |\n| + properties: { +//@[38:48) Identifier |properties| +//@[48:49) Colon |:| +//@[50:51) LeftBrace |{| +//@[51:52) NewLine |\n| + privateIPAllocationMethod: 'Dynamic' +//@[40:65) Identifier |privateIPAllocationMethod| +//@[65:66) Colon |:| +//@[67:76) StringComplete |'Dynamic'| +//@[76:77) NewLine |\n| + subnet: { +//@[40:46) Identifier |subnet| +//@[46:47) Colon |:| +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/virtualNetworks/\', parameters(\'hubName\'),\'/subnets/GatewaySubnet\')]' +//@[42:44) Identifier |id| +//@[44:45) Colon |:| +//@[46:227) StringComplete |'[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/virtualNetworks/\', parameters(\'hubName\'),\'/subnets/GatewaySubnet\')]'| +//@[227:228) NewLine |\n| + } +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + publicIpAddress: { +//@[40:55) Identifier |publicIpAddress| +//@[55:56) Colon |:| +//@[57:58) LeftBrace |{| +//@[58:59) NewLine |\n| + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/publicIPAddresses/\', parameters(\'vpngw\').name,\'-pip\')]' +//@[42:44) Identifier |id| +//@[44:45) Colon |:| +//@[46:214) StringComplete |'[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/publicIPAddresses/\', parameters(\'vpngw\').name,\'-pip\')]'| +//@[214:215) NewLine |\n| + } +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + ] +//@[34:35) RightSquare |]| +//@[35:36) NewLine |\n| + sku: { +//@[34:37) Identifier |sku| +//@[37:38) Colon |:| +//@[39:40) LeftBrace |{| +//@[40:41) NewLine |\n| + name: '[parameters(\'vpngw\').sku]' +//@[36:40) Identifier |name| +//@[40:41) Colon |:| +//@[42:71) StringComplete |'[parameters(\'vpngw\').sku]'| +//@[71:72) NewLine |\n| + tier: '[parameters(\'vpngw\').sku]' +//@[36:40) Identifier |tier| +//@[40:41) Colon |:| +//@[42:71) StringComplete |'[parameters(\'vpngw\').sku]'| +//@[71:72) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2020-06-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2020-06-01'| +//@[48:49) NewLine |\n| + condition: '[greater(length(parameters(\'ergw\')),0)]' +//@[24:33) Identifier |condition| +//@[33:34) Colon |:| +//@[35:78) StringComplete |'[greater(length(parameters(\'ergw\')),0)]'| +//@[78:79) NewLine |\n| + resourceGroup: '[parameters(\'rgName\')]' +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:65) StringComplete |'[parameters(\'rgName\')]'| +//@[65:66) NewLine |\n| + dependsOn: [ +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]' +//@[26:97) StringComplete |'[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]'| +//@[97:98) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + name: '[concat(parameters(\'hubName\'),\'-ergw\')]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:75) StringComplete |'[concat(parameters(\'hubName\'),\'-ergw\')]'| +//@[75:76) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:120) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[120:121) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + type: 'Microsoft.Network/publicIpAddresses' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:75) StringComplete |'Microsoft.Network/publicIpAddresses'| +//@[75:76) NewLine |\n| + location: '[parameters(\'HUB\').location]' +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:74) StringComplete |'[parameters(\'HUB\').location]'| +//@[74:75) NewLine |\n| + name: '[concat(parameters(\'ergw\').name,\'-pip\')]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:84) StringComplete |'[concat(parameters(\'ergw\').name,\'-pip\')]'| +//@[84:85) NewLine |\n| + properties: { +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + publicIPAllocationMethod: 'Dynamic' +//@[34:58) Identifier |publicIPAllocationMethod| +//@[58:59) Colon |:| +//@[60:69) StringComplete |'Dynamic'| +//@[69:70) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + tags: {} +//@[32:36) Identifier |tags| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + name: '[parameters(\'ergw\').name]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:67) StringComplete |'[parameters(\'ergw\').name]'| +//@[67:68) NewLine |\n| + type: 'Microsoft.Network/virtualNetworkGateways' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:80) StringComplete |'Microsoft.Network/virtualNetworkGateways'| +//@[80:81) NewLine |\n| + location: '[parameters(\'HUB\').location]' +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:74) StringComplete |'[parameters(\'HUB\').location]'| +//@[74:75) NewLine |\n| + dependsOn: [ +//@[32:41) Identifier |dependsOn| +//@[41:42) Colon |:| +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + '[concat(\'Microsoft.Network/publicIPAddresses/\', parameters(\'ergw\').name,\'-pip\')]' +//@[34:122) StringComplete |'[concat(\'Microsoft.Network/publicIPAddresses/\', parameters(\'ergw\').name,\'-pip\')]'| +//@[122:123) NewLine |\n| + ] +//@[32:33) RightSquare |]| +//@[33:34) NewLine |\n| + tags: {} +//@[32:36) Identifier |tags| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + properties: { +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + gatewayType: 'ExpressRoute' +//@[34:45) Identifier |gatewayType| +//@[45:46) Colon |:| +//@[47:61) StringComplete |'ExpressRoute'| +//@[61:62) NewLine |\n| + ipConfigurations: [ +//@[34:50) Identifier |ipConfigurations| +//@[50:51) Colon |:| +//@[52:53) LeftSquare |[| +//@[53:54) NewLine |\n| + { +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + name: 'default' +//@[38:42) Identifier |name| +//@[42:43) Colon |:| +//@[44:53) StringComplete |'default'| +//@[53:54) NewLine |\n| + properties: { +//@[38:48) Identifier |properties| +//@[48:49) Colon |:| +//@[50:51) LeftBrace |{| +//@[51:52) NewLine |\n| + privateIPAllocationMethod: 'Dynamic' +//@[40:65) Identifier |privateIPAllocationMethod| +//@[65:66) Colon |:| +//@[67:76) StringComplete |'Dynamic'| +//@[76:77) NewLine |\n| + subnet: { +//@[40:46) Identifier |subnet| +//@[46:47) Colon |:| +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/virtualNetworks/\', parameters(\'hubName\'),\'/subnets/GatewaySubnet\')]' +//@[42:44) Identifier |id| +//@[44:45) Colon |:| +//@[46:227) StringComplete |'[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/virtualNetworks/\', parameters(\'hubName\'),\'/subnets/GatewaySubnet\')]'| +//@[227:228) NewLine |\n| + } +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + publicIpAddress: { +//@[40:55) Identifier |publicIpAddress| +//@[55:56) Colon |:| +//@[57:58) LeftBrace |{| +//@[58:59) NewLine |\n| + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/publicIPAddresses/\', parameters(\'ergw\').name,\'-pip\')]' +//@[42:44) Identifier |id| +//@[44:45) Colon |:| +//@[46:213) StringComplete |'[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/publicIPAddresses/\', parameters(\'ergw\').name,\'-pip\')]'| +//@[213:214) NewLine |\n| + } +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + ] +//@[34:35) RightSquare |]| +//@[35:36) NewLine |\n| + sku: { +//@[34:37) Identifier |sku| +//@[37:38) Colon |:| +//@[39:40) LeftBrace |{| +//@[40:41) NewLine |\n| + name: '[parameters(\'ergw\').sku]' +//@[36:40) Identifier |name| +//@[40:41) Colon |:| +//@[42:70) StringComplete |'[parameters(\'ergw\').sku]'| +//@[70:71) NewLine |\n| + tier: '[parameters(\'ergw\').sku]' +//@[36:40) Identifier |tier| +//@[40:41) Colon |:| +//@[42:70) StringComplete |'[parameters(\'ergw\').sku]'| +//@[70:71) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2020-06-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2020-06-01'| +//@[48:49) NewLine |\n| + condition: '[greater(length(parameters(\'azfw\')),0)]' +//@[24:33) Identifier |condition| +//@[33:34) Colon |:| +//@[35:78) StringComplete |'[greater(length(parameters(\'azfw\')),0)]'| +//@[78:79) NewLine |\n| + name: '[concat(parameters(\'hubName\'),\'-azfw\')]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:75) StringComplete |'[concat(parameters(\'hubName\'),\'-azfw\')]'| +//@[75:76) NewLine |\n| + resourceGroup: '[parameters(\'rgName\')]' +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:65) StringComplete |'[parameters(\'rgName\')]'| +//@[65:66) NewLine |\n| + dependsOn: [ +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]' +//@[26:97) StringComplete |'[concat(parameters(\'hubName\'),\'-\', parameters(\'HUB\').location)]'| +//@[97:98) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:120) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[120:121) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + type: 'Microsoft.Network/publicIpAddresses' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:75) StringComplete |'Microsoft.Network/publicIpAddresses'| +//@[75:76) NewLine |\n| + name: '[concat(parameters(\'azfw\').name,\'-pip\')]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:84) StringComplete |'[concat(parameters(\'azfw\').name,\'-pip\')]'| +//@[84:85) NewLine |\n| + location: '[parameters(\'azfw\').location]' +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:75) StringComplete |'[parameters(\'azfw\').location]'| +//@[75:76) NewLine |\n| + sku: { +//@[32:35) Identifier |sku| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + name: 'Standard' +//@[34:38) Identifier |name| +//@[38:39) Colon |:| +//@[40:50) StringComplete |'Standard'| +//@[50:51) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + zones: '[if(contains(parameters(\'azfw\'),\'pipZones\'),parameters(\'azfw\').pipZones,json(\'null\'))]' +//@[32:37) Identifier |zones| +//@[37:38) Colon |:| +//@[39:135) StringComplete |'[if(contains(parameters(\'azfw\'),\'pipZones\'),parameters(\'azfw\').pipZones,json(\'null\'))]'| +//@[135:136) NewLine |\n| + properties: { +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + publicIPAllocationMethod: 'Static' +//@[34:58) Identifier |publicIPAllocationMethod| +//@[58:59) Colon |:| +//@[60:68) StringComplete |'Static'| +//@[68:69) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + tags: {} +//@[32:36) Identifier |tags| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + type: 'Microsoft.Network/azureFirewalls' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:72) StringComplete |'Microsoft.Network/azureFirewalls'| +//@[72:73) NewLine |\n| + name: '[parameters(\'azfw\').name]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:67) StringComplete |'[parameters(\'azfw\').name]'| +//@[67:68) NewLine |\n| + location: '[parameters(\'azfw\').location]' +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:75) StringComplete |'[parameters(\'azfw\').location]'| +//@[75:76) NewLine |\n| + zones: '[if(contains(parameters(\'azfw\'),\'fwZones\'),parameters(\'azfw\').fwZones,json(\'null\'))]' +//@[32:37) Identifier |zones| +//@[37:38) Colon |:| +//@[39:133) StringComplete |'[if(contains(parameters(\'azfw\'),\'fwZones\'),parameters(\'azfw\').fwZones,json(\'null\'))]'| +//@[133:134) NewLine |\n| + dependsOn: [ +//@[32:41) Identifier |dependsOn| +//@[41:42) Colon |:| +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + '[concat(parameters(\'azfw\').name,\'-pip\')]' +//@[34:80) StringComplete |'[concat(parameters(\'azfw\').name,\'-pip\')]'| +//@[80:81) NewLine |\n| + ] +//@[32:33) RightSquare |]| +//@[33:34) NewLine |\n| + properties: { +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + threatIntelMode: '[parameters(\'azfw\').threatIntelMode]' +//@[34:49) Identifier |threatIntelMode| +//@[49:50) Colon |:| +//@[51:91) StringComplete |'[parameters(\'azfw\').threatIntelMode]'| +//@[91:92) NewLine |\n| + additionalProperties: '[if(contains(parameters(\'azfw\'),\'additionalProperties\'),parameters(\'azfw\').additionalProperties,json(\'null\'))]' +//@[34:54) Identifier |additionalProperties| +//@[54:55) Colon |:| +//@[56:176) StringComplete |'[if(contains(parameters(\'azfw\'),\'additionalProperties\'),parameters(\'azfw\').additionalProperties,json(\'null\'))]'| +//@[176:177) NewLine |\n| + sku: '[if(contains(parameters(\'azfw\'),\'sku\'),parameters(\'azfw\').sku,json(\'null\'))]' +//@[34:37) Identifier |sku| +//@[37:38) Colon |:| +//@[39:125) StringComplete |'[if(contains(parameters(\'azfw\'),\'sku\'),parameters(\'azfw\').sku,json(\'null\'))]'| +//@[125:126) NewLine |\n| + ipConfigurations: [ +//@[34:50) Identifier |ipConfigurations| +//@[50:51) Colon |:| +//@[52:53) LeftSquare |[| +//@[53:54) NewLine |\n| + { +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + name: '[concat(parameters(\'azfw\').name,\'-pip\')]' +//@[38:42) Identifier |name| +//@[42:43) Colon |:| +//@[44:90) StringComplete |'[concat(parameters(\'azfw\').name,\'-pip\')]'| +//@[90:91) NewLine |\n| + properties: { +//@[38:48) Identifier |properties| +//@[48:49) Colon |:| +//@[50:51) LeftBrace |{| +//@[51:52) NewLine |\n| + subnet: { +//@[40:46) Identifier |subnet| +//@[46:47) Colon |:| +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/virtualNetworks/\', parameters(\'hubName\'),\'/subnets/AzureFirewallSubnet\')]' +//@[42:44) Identifier |id| +//@[44:45) Colon |:| +//@[46:233) StringComplete |'[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/virtualNetworks/\', parameters(\'hubName\'),\'/subnets/AzureFirewallSubnet\')]'| +//@[233:234) NewLine |\n| + } +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + publicIPAddress: { +//@[40:55) Identifier |publicIPAddress| +//@[55:56) Colon |:| +//@[57:58) LeftBrace |{| +//@[58:59) NewLine |\n| + id: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/publicIPAddresses/\', parameters(\'azfw\').name,\'-pip\')]' +//@[42:44) Identifier |id| +//@[44:45) Colon |:| +//@[46:213) StringComplete |'[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'), \'/providers\',\'/Microsoft.Network/publicIPAddresses/\', parameters(\'azfw\').name,\'-pip\')]'| +//@[213:214) NewLine |\n| + } +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + ] +//@[34:35) RightSquare |]| +//@[35:36) NewLine |\n| + firewallPolicy: '[if(contains(parameters(\'azfw\'),\'firewallPolicy\'),parameters(\'azfw\').firewallPolicy,json(\'null\'))]' +//@[34:48) Identifier |firewallPolicy| +//@[48:49) Colon |:| +//@[50:158) StringComplete |'[if(contains(parameters(\'azfw\'),\'firewallPolicy\'),parameters(\'azfw\').firewallPolicy,json(\'null\'))]'| +//@[158:159) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + tags: {} +//@[32:36) Identifier |tags| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-HUB' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:24) StringComplete |'Deploy-HUB'| +//@[24:25) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploy spoke network with configuration to hub network based on ipam configuration object' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:112) StringComplete |'Deploy spoke network with configuration to hub network based on ipam configuration object'| +//@[112:113) NewLine |\n| + DisplayName: 'Deploy spoke network with configuration to hub network based on ipam configuration object' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:112) StringComplete |'Deploy spoke network with configuration to hub network based on ipam configuration object'| +//@[112:113) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + ipam: { +//@[10:14) Identifier |ipam| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + type: 'Array' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:25) StringComplete |'Array'| +//@[25:26) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'ipam' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:33) StringComplete |'ipam'| +//@[33:34) NewLine |\n| + description: null +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: [] +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:27) LeftSquare |[| +//@[27:28) RightSquare |]| +//@[28:29) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Resources/subscriptions' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringComplete |'Microsoft.Resources/subscriptions'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Resources/resourceGroups' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:56) StringComplete |'Microsoft.Resources/resourceGroups'| +//@[56:57) NewLine |\n| + deploymentScope: 'Subscription' +//@[14:29) Identifier |deploymentScope| +//@[29:30) Colon |:| +//@[31:45) StringComplete |'Subscription'| +//@[45:46) NewLine |\n| + existenceScope: 'Subscription' +//@[14:28) Identifier |existenceScope| +//@[28:29) Colon |:| +//@[30:44) StringComplete |'Subscription'| +//@[44:45) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7' +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'type' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:33) StringComplete |'type'| +//@[33:34) NewLine |\n| + equals: 'Microsoft.Resources/subscriptions/resourceGroups' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:78) StringComplete |'Microsoft.Resources/subscriptions/resourceGroups'| +//@[78:79) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'name' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:33) StringComplete |'name'| +//@[33:34) NewLine |\n| + like: '[concat(subscription().displayName, \'-network\')]' +//@[20:24) Identifier |like| +//@[24:25) Colon |:| +//@[26:78) StringComplete |'[concat(subscription().displayName, \'-network\')]'| +//@[78:79) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + location: 'northeurope' +//@[16:24) Identifier |location| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'northeurope'| +//@[39:40) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + ipam: { +//@[20:24) Identifier |ipam| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + value: '[parameters(\'ipam\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:53) StringComplete |'[parameters(\'ipam\')]'| +//@[53:54) NewLine |\n| + defaultValue: [] +//@[22:34) Identifier |defaultValue| +//@[34:35) Colon |:| +//@[36:37) LeftSquare |[| +//@[37:38) RightSquare |]| +//@[38:39) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:122) StringComplete |'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json'| +//@[122:123) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + ipam: { +//@[22:26) Identifier |ipam| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + defaultValue: [ +//@[24:36) Identifier |defaultValue| +//@[36:37) Colon |:| +//@[38:39) LeftSquare |[| +//@[39:40) NewLine |\n| + { +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + name: 'bu1-weu-msx3-vNet1' +//@[28:32) Identifier |name| +//@[32:33) Colon |:| +//@[34:54) StringComplete |'bu1-weu-msx3-vNet1'| +//@[54:55) NewLine |\n| + location: 'westeurope' +//@[28:36) Identifier |location| +//@[36:37) Colon |:| +//@[38:50) StringComplete |'westeurope'| +//@[50:51) NewLine |\n| + virtualNetworks: { +//@[28:43) Identifier |virtualNetworks| +//@[43:44) Colon |:| +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + properties: { +//@[30:40) Identifier |properties| +//@[40:41) Colon |:| +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + addressSpace: { +//@[32:44) Identifier |addressSpace| +//@[44:45) Colon |:| +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + addressPrefixes: [ +//@[34:49) Identifier |addressPrefixes| +//@[49:50) Colon |:| +//@[51:52) LeftSquare |[| +//@[52:53) NewLine |\n| + '10.51.217.0/24' +//@[36:52) StringComplete |'10.51.217.0/24'| +//@[52:53) NewLine |\n| + ] +//@[34:35) RightSquare |]| +//@[35:36) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + networkSecurityGroups: { +//@[28:49) Identifier |networkSecurityGroups| +//@[49:50) Colon |:| +//@[51:52) LeftBrace |{| +//@[52:53) NewLine |\n| + properties: { +//@[30:40) Identifier |properties| +//@[40:41) Colon |:| +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + securityRules: [] +//@[32:45) Identifier |securityRules| +//@[45:46) Colon |:| +//@[47:48) LeftSquare |[| +//@[48:49) RightSquare |]| +//@[49:50) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + routeTables: { +//@[28:39) Identifier |routeTables| +//@[39:40) Colon |:| +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + properties: { +//@[30:40) Identifier |properties| +//@[40:41) Colon |:| +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + routes: [] +//@[32:38) Identifier |routes| +//@[38:39) Colon |:| +//@[40:41) LeftSquare |[| +//@[41:42) RightSquare |]| +//@[42:43) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + hubVirtualNetworkConnection: { +//@[28:55) Identifier |hubVirtualNetworkConnection| +//@[55:56) Colon |:| +//@[57:58) LeftBrace |{| +//@[58:59) NewLine |\n| + vWanVhubResourceId: '/subscriptions/99c2838f-a548-4884-a6e2-38c1f8fb4c0b/resourceGroups/contoso-global-vwan/providers/Microsoft.Network/virtualHubs/contoso-vhub-weu' +//@[30:48) Identifier |vWanVhubResourceId| +//@[48:49) Colon |:| +//@[50:195) StringComplete |'/subscriptions/99c2838f-a548-4884-a6e2-38c1f8fb4c0b/resourceGroups/contoso-global-vwan/providers/Microsoft.Network/virtualHubs/contoso-vhub-weu'| +//@[195:196) NewLine |\n| + properties: { +//@[30:40) Identifier |properties| +//@[40:41) Colon |:| +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + allowHubToRemoteVnetTransit: true +//@[32:59) Identifier |allowHubToRemoteVnetTransit| +//@[59:60) Colon |:| +//@[61:65) TrueKeyword |true| +//@[65:66) NewLine |\n| + allowRemoteVnetToUseHubVnetGateways: false +//@[32:67) Identifier |allowRemoteVnetToUseHubVnetGateways| +//@[67:68) Colon |:| +//@[69:74) FalseKeyword |false| +//@[74:75) NewLine |\n| + enableInternetSecurity: true +//@[32:54) Identifier |enableInternetSecurity| +//@[54:55) Colon |:| +//@[56:60) TrueKeyword |true| +//@[60:61) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + type: 'Array' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:37) StringComplete |'Array'| +//@[37:38) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: { +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) NewLine |\n| + vNetRgName: '[concat(subscription().displayName, \'-network\')]' +//@[22:32) Identifier |vNetRgName| +//@[32:33) Colon |:| +//@[34:86) StringComplete |'[concat(subscription().displayName, \'-network\')]'| +//@[86:87) NewLine |\n| + vNetName: '[concat(subscription().displayName, \'-vNet\')]' +//@[22:30) Identifier |vNetName| +//@[30:31) Colon |:| +//@[32:81) StringComplete |'[concat(subscription().displayName, \'-vNet\')]'| +//@[81:82) NewLine |\n| + vNetSubId: '[subscription().subscriptionId]' +//@[22:31) Identifier |vNetSubId| +//@[31:32) Colon |:| +//@[33:66) StringComplete |'[subscription().subscriptionId]'| +//@[66:67) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2020-06-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2020-06-01'| +//@[48:49) NewLine |\n| + name: '[concat(\'es-ipam-\',subscription().displayName,\'-RG-\',copyIndex())]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:102) StringComplete |'[concat(\'es-ipam-\',subscription().displayName,\'-RG-\',copyIndex())]'| +//@[102:103) NewLine |\n| + location: '[parameters(\'ipam\')[copyIndex()].location]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:80) StringComplete |'[parameters(\'ipam\')[copyIndex()].location]'| +//@[80:81) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:120) StringComplete |'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[120:121) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Resources/resourceGroups' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:74) StringComplete |'Microsoft.Resources/resourceGroups'| +//@[74:75) NewLine |\n| + apiVersion: '2020-06-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2020-06-01'| +//@[56:57) NewLine |\n| + name: '[variables(\'vNetRgName\')]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:67) StringComplete |'[variables(\'vNetRgName\')]'| +//@[67:68) NewLine |\n| + location: '[parameters(\'ipam\')[copyIndex()].location]' +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:88) StringComplete |'[parameters(\'ipam\')[copyIndex()].location]'| +//@[88:89) NewLine |\n| + properties: {} +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) RightBrace |}| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Resources/resourceGroups' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:74) StringComplete |'Microsoft.Resources/resourceGroups'| +//@[74:75) NewLine |\n| + apiVersion: '2020-06-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2020-06-01'| +//@[56:57) NewLine |\n| + name: 'NetworkWatcherRG' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:56) StringComplete |'NetworkWatcherRG'| +//@[56:57) NewLine |\n| + location: '[parameters(\'ipam\')[copyIndex()].location]' +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:88) StringComplete |'[parameters(\'ipam\')[copyIndex()].location]'| +//@[88:89) NewLine |\n| + properties: {} +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) RightBrace |}| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + outputs: {} +//@[28:35) Identifier |outputs| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + copy: { +//@[24:28) Identifier |copy| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + name: 'ipam-rg-loop' +//@[26:30) Identifier |name| +//@[30:31) Colon |:| +//@[32:46) StringComplete |'ipam-rg-loop'| +//@[46:47) NewLine |\n| + count: '[length(parameters(\'ipam\'))]' +//@[26:31) Identifier |count| +//@[31:32) Colon |:| +//@[33:65) StringComplete |'[length(parameters(\'ipam\'))]'| +//@[65:66) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + condition: '[if(and(not(empty(parameters(\'ipam\'))), equals(toLower(parameters(\'ipam\')[copyIndex()].name),toLower(variables(\'vNetName\')))),bool(\'true\'),bool(\'false\'))]' +//@[24:33) Identifier |condition| +//@[33:34) Colon |:| +//@[35:201) StringComplete |'[if(and(not(empty(parameters(\'ipam\'))), equals(toLower(parameters(\'ipam\')[copyIndex()].name),toLower(variables(\'vNetName\')))),bool(\'true\'),bool(\'false\'))]'| +//@[201:202) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2020-06-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2020-06-01'| +//@[48:49) NewLine |\n| + name: '[concat(\'es-ipam-\',subscription().displayName,\'-nsg-udr-vnet-hub-vwan-peering-\',copyIndex())]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:129) StringComplete |'[concat(\'es-ipam-\',subscription().displayName,\'-nsg-udr-vnet-hub-vwan-peering-\',copyIndex())]'| +//@[129:130) NewLine |\n| + dependsOn: [ +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(\'es-ipam-\',subscription().displayName,\'-RG-\',copyIndex())]' +//@[26:98) StringComplete |'[concat(\'es-ipam-\',subscription().displayName,\'-RG-\',copyIndex())]'| +//@[98:99) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:120) StringComplete |'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[120:121) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + condition: '[contains(parameters(\'ipam\')[copyIndex()],\'networkSecurityGroups\')]' +//@[32:41) Identifier |condition| +//@[41:42) Colon |:| +//@[43:116) StringComplete |'[contains(parameters(\'ipam\')[copyIndex()],\'networkSecurityGroups\')]'| +//@[116:117) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + type: 'Microsoft.Network/networkSecurityGroups' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:79) StringComplete |'Microsoft.Network/networkSecurityGroups'| +//@[79:80) NewLine |\n| + name: '[concat(subscription().displayName, \'-nsg\')]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:86) StringComplete |'[concat(subscription().displayName, \'-nsg\')]'| +//@[86:87) NewLine |\n| + location: '[parameters(\'ipam\')[copyIndex()].location]' +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:88) StringComplete |'[parameters(\'ipam\')[copyIndex()].location]'| +//@[88:89) NewLine |\n| + properties: '[if(contains(parameters(\'ipam\')[copyIndex()],\'networkSecurityGroups\'),parameters(\'ipam\')[copyIndex()].networkSecurityGroups.properties,json(\'null\'))]' +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:203) StringComplete |'[if(contains(parameters(\'ipam\')[copyIndex()],\'networkSecurityGroups\'),parameters(\'ipam\')[copyIndex()].networkSecurityGroups.properties,json(\'null\'))]'| +//@[203:204) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + condition: '[contains(parameters(\'ipam\')[copyIndex()],\'routeTables\')]' +//@[32:41) Identifier |condition| +//@[41:42) Colon |:| +//@[43:106) StringComplete |'[contains(parameters(\'ipam\')[copyIndex()],\'routeTables\')]'| +//@[106:107) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + type: 'Microsoft.Network/routeTables' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:69) StringComplete |'Microsoft.Network/routeTables'| +//@[69:70) NewLine |\n| + name: '[concat(subscription().displayName, \'-udr\')]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:86) StringComplete |'[concat(subscription().displayName, \'-udr\')]'| +//@[86:87) NewLine |\n| + location: '[parameters(\'ipam\')[copyIndex()].location]' +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:88) StringComplete |'[parameters(\'ipam\')[copyIndex()].location]'| +//@[88:89) NewLine |\n| + properties: '[if(contains(parameters(\'ipam\')[copyIndex()],\'routeTables\'),parameters(\'ipam\')[copyIndex()].routeTables.properties,json(\'null\'))]' +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:183) StringComplete |'[if(contains(parameters(\'ipam\')[copyIndex()],\'routeTables\'),parameters(\'ipam\')[copyIndex()].routeTables.properties,json(\'null\'))]'| +//@[183:184) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + condition: '[contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\')]' +//@[32:41) Identifier |condition| +//@[41:42) Colon |:| +//@[43:110) StringComplete |'[contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\')]'| +//@[110:111) NewLine |\n| + type: 'Microsoft.Network/virtualNetworks' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:73) StringComplete |'Microsoft.Network/virtualNetworks'| +//@[73:74) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + name: '[concat(subscription().displayName, \'-vnet\')]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:87) StringComplete |'[concat(subscription().displayName, \'-vnet\')]'| +//@[87:88) NewLine |\n| + location: '[parameters(\'ipam\')[copyIndex()].location]' +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:88) StringComplete |'[parameters(\'ipam\')[copyIndex()].location]'| +//@[88:89) NewLine |\n| + dependsOn: [ +//@[32:41) Identifier |dependsOn| +//@[41:42) Colon |:| +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + '[concat(subscription().displayName, \'-nsg\')]' +//@[34:82) StringComplete |'[concat(subscription().displayName, \'-nsg\')]'| +//@[82:83) NewLine |\n| + '[concat(subscription().displayName, \'-udr\')]' +//@[34:82) StringComplete |'[concat(subscription().displayName, \'-udr\')]'| +//@[82:83) NewLine |\n| + ] +//@[32:33) RightSquare |]| +//@[33:34) NewLine |\n| + properties: '[if(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\'),parameters(\'ipam\')[copyIndex()].virtualNetworks.properties,json(\'null\'))]' +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:191) StringComplete |'[if(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\'),parameters(\'ipam\')[copyIndex()].virtualNetworks.properties,json(\'null\'))]'| +//@[191:192) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + condition: '[contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\')]' +//@[32:41) Identifier |condition| +//@[41:42) Colon |:| +//@[43:117) StringComplete |'[contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\')]'| +//@[117:118) NewLine |\n| + type: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:96) StringComplete |'Microsoft.Network/virtualNetworks/virtualNetworkPeerings'| +//@[96:97) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + name: '[concat(variables(\'vNetName\'), \'/peerToHub\')]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:89) StringComplete |'[concat(variables(\'vNetName\'), \'/peerToHub\')]'| +//@[89:90) NewLine |\n| + dependsOn: [ +//@[32:41) Identifier |dependsOn| +//@[41:42) Colon |:| +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + '[concat(subscription().displayName, \'-vnet\')]' +//@[34:83) StringComplete |'[concat(subscription().displayName, \'-vnet\')]'| +//@[83:84) NewLine |\n| + ] +//@[32:33) RightSquare |]| +//@[33:34) NewLine |\n| + properties: '[if(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties,json(\'null\'))]' +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:205) StringComplete |'[if(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties,json(\'null\'))]'| +//@[205:206) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + condition: '[and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\'),contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\'))]' +//@[32:41) Identifier |condition| +//@[41:42) Colon |:| +//@[43:286) StringComplete |'[and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\'),contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\'))]'| +//@[286:287) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:71) StringComplete |'Microsoft.Resources/deployments'| +//@[71:72) NewLine |\n| + apiVersion: '2020-06-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2020-06-01'| +//@[56:57) NewLine |\n| + name: '[concat(\'es-ipam-vWan-\',subscription().displayName,\'-peering-\',copyIndex())]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:120) StringComplete |'[concat(\'es-ipam-vWan-\',subscription().displayName,\'-peering-\',copyIndex())]'| +//@[120:121) NewLine |\n| + subscriptionId: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),split(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,\'/\')[2],json(\'null\'))]' +//@[32:46) Identifier |subscriptionId| +//@[46:47) Colon |:| +//@[48:343) StringComplete |'[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),split(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,\'/\')[2],json(\'null\'))]'| +//@[343:344) NewLine |\n| + resourceGroup: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),split(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,\'/\')[4],json(\'null\'))]' +//@[32:45) Identifier |resourceGroup| +//@[45:46) Colon |:| +//@[47:342) StringComplete |'[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),split(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,\'/\')[4],json(\'null\'))]'| +//@[342:343) NewLine |\n| + dependsOn: [ +//@[32:41) Identifier |dependsOn| +//@[41:42) Colon |:| +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + '[concat(subscription().displayName, \'-vnet\')]' +//@[34:83) StringComplete |'[concat(subscription().displayName, \'-vnet\')]'| +//@[83:84) NewLine |\n| + ] +//@[32:33) RightSquare |]| +//@[33:34) NewLine |\n| + properties: { +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + mode: 'Incremental' +//@[34:38) Identifier |mode| +//@[38:39) Colon |:| +//@[40:53) StringComplete |'Incremental'| +//@[53:54) NewLine |\n| + expressionEvaluationOptions: { +//@[34:61) Identifier |expressionEvaluationOptions| +//@[61:62) Colon |:| +//@[63:64) LeftBrace |{| +//@[64:65) NewLine |\n| + scope: 'inner' +//@[36:41) Identifier |scope| +//@[41:42) Colon |:| +//@[43:50) StringComplete |'inner'| +//@[50:51) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + template: { +//@[34:42) Identifier |template| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[36:45) StringComplete |'$schema'| +//@[45:46) Colon |:| +//@[47:128) StringComplete |'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[128:129) NewLine |\n| + contentVersion: '1.0.0.0' +//@[36:50) Identifier |contentVersion| +//@[50:51) Colon |:| +//@[52:61) StringComplete |'1.0.0.0'| +//@[61:62) NewLine |\n| + parameters: { +//@[36:46) Identifier |parameters| +//@[46:47) Colon |:| +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + remoteVirtualNetwork: { +//@[38:58) Identifier |remoteVirtualNetwork| +//@[58:59) Colon |:| +//@[60:61) LeftBrace |{| +//@[61:62) NewLine |\n| + type: 'string' +//@[40:44) Identifier |type| +//@[44:45) Colon |:| +//@[46:54) StringComplete |'string'| +//@[54:55) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + vWanVhubName: { +//@[38:50) Identifier |vWanVhubName| +//@[50:51) Colon |:| +//@[52:53) LeftBrace |{| +//@[53:54) NewLine |\n| + Type: 'string' +//@[40:44) Identifier |Type| +//@[44:45) Colon |:| +//@[46:54) StringComplete |'string'| +//@[54:55) NewLine |\n| + defaultValue: '' +//@[40:52) Identifier |defaultValue| +//@[52:53) Colon |:| +//@[54:56) StringComplete |''| +//@[56:57) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + allowHubToRemoteVnetTransit: { +//@[38:65) Identifier |allowHubToRemoteVnetTransit| +//@[65:66) Colon |:| +//@[67:68) LeftBrace |{| +//@[68:69) NewLine |\n| + Type: 'bool' +//@[40:44) Identifier |Type| +//@[44:45) Colon |:| +//@[46:52) StringComplete |'bool'| +//@[52:53) NewLine |\n| + defaultValue: true +//@[40:52) Identifier |defaultValue| +//@[52:53) Colon |:| +//@[54:58) TrueKeyword |true| +//@[58:59) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + allowRemoteVnetToUseHubVnetGateways: { +//@[38:73) Identifier |allowRemoteVnetToUseHubVnetGateways| +//@[73:74) Colon |:| +//@[75:76) LeftBrace |{| +//@[76:77) NewLine |\n| + Type: 'bool' +//@[40:44) Identifier |Type| +//@[44:45) Colon |:| +//@[46:52) StringComplete |'bool'| +//@[52:53) NewLine |\n| + defaultValue: false +//@[40:52) Identifier |defaultValue| +//@[52:53) Colon |:| +//@[54:59) FalseKeyword |false| +//@[59:60) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + enableInternetSecurity: { +//@[38:60) Identifier |enableInternetSecurity| +//@[60:61) Colon |:| +//@[62:63) LeftBrace |{| +//@[63:64) NewLine |\n| + Type: 'bool' +//@[40:44) Identifier |Type| +//@[44:45) Colon |:| +//@[46:52) StringComplete |'bool'| +//@[52:53) NewLine |\n| + defaultValue: true +//@[40:52) Identifier |defaultValue| +//@[52:53) Colon |:| +//@[54:58) TrueKeyword |true| +//@[58:59) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + variables: {} +//@[36:45) Identifier |variables| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) RightBrace |}| +//@[49:50) NewLine |\n| + resources: [ +//@[36:45) Identifier |resources| +//@[45:46) Colon |:| +//@[47:48) LeftSquare |[| +//@[48:49) NewLine |\n| + { +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'Microsoft.Network/virtualHubs/hubVirtualNetworkConnections' +//@[40:44) Identifier |type| +//@[44:45) Colon |:| +//@[46:106) StringComplete |'Microsoft.Network/virtualHubs/hubVirtualNetworkConnections'| +//@[106:107) NewLine |\n| + apiVersion: '2020-05-01' +//@[40:50) Identifier |apiVersion| +//@[50:51) Colon |:| +//@[52:64) StringComplete |'2020-05-01'| +//@[64:65) NewLine |\n| + name: '[[concat(parameters(\'vWanVhubName\'),\'/\',last(split(parameters(\'remoteVirtualNetwork\'),\'/\')))]' +//@[40:44) Identifier |name| +//@[44:45) Colon |:| +//@[46:149) StringComplete |'[[concat(parameters(\'vWanVhubName\'),\'/\',last(split(parameters(\'remoteVirtualNetwork\'),\'/\')))]'| +//@[149:150) NewLine |\n| + properties: { +//@[40:50) Identifier |properties| +//@[50:51) Colon |:| +//@[52:53) LeftBrace |{| +//@[53:54) NewLine |\n| + remoteVirtualNetwork: { +//@[42:62) Identifier |remoteVirtualNetwork| +//@[62:63) Colon |:| +//@[64:65) LeftBrace |{| +//@[65:66) NewLine |\n| + id: '[[parameters(\'remoteVirtualNetwork\')]' +//@[44:46) Identifier |id| +//@[46:47) Colon |:| +//@[48:89) StringComplete |'[[parameters(\'remoteVirtualNetwork\')]'| +//@[89:90) NewLine |\n| + } +//@[42:43) RightBrace |}| +//@[43:44) NewLine |\n| + allowHubToRemoteVnetTransit: '[[parameters(\'allowHubToRemoteVnetTransit\')]' +//@[42:69) Identifier |allowHubToRemoteVnetTransit| +//@[69:70) Colon |:| +//@[71:119) StringComplete |'[[parameters(\'allowHubToRemoteVnetTransit\')]'| +//@[119:120) NewLine |\n| + allowRemoteVnetToUseHubVnetGateways: '[[parameters(\'allowRemoteVnetToUseHubVnetGateways\')]' +//@[42:77) Identifier |allowRemoteVnetToUseHubVnetGateways| +//@[77:78) Colon |:| +//@[79:135) StringComplete |'[[parameters(\'allowRemoteVnetToUseHubVnetGateways\')]'| +//@[135:136) NewLine |\n| + enableInternetSecurity: '[[parameters(\'enableInternetSecurity\')]' +//@[42:64) Identifier |enableInternetSecurity| +//@[64:65) Colon |:| +//@[66:109) StringComplete |'[[parameters(\'enableInternetSecurity\')]'| +//@[109:110) NewLine |\n| + } +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + ] +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + outputs: {} +//@[36:43) Identifier |outputs| +//@[43:44) Colon |:| +//@[45:46) LeftBrace |{| +//@[46:47) RightBrace |}| +//@[47:48) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + parameters: { +//@[34:44) Identifier |parameters| +//@[44:45) Colon |:| +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + remoteVirtualNetwork: { +//@[36:56) Identifier |remoteVirtualNetwork| +//@[56:57) Colon |:| +//@[58:59) LeftBrace |{| +//@[59:60) NewLine |\n| + value: '[concat(subscription().id,\'/resourceGroups/\',variables(\'vNetRgName\'), \'/providers/\',\'Microsoft.Network/virtualNetworks/\', concat(subscription().displayName, \'-vnet\'))]' +//@[38:43) Identifier |value| +//@[43:44) Colon |:| +//@[45:224) StringComplete |'[concat(subscription().id,\'/resourceGroups/\',variables(\'vNetRgName\'), \'/providers/\',\'Microsoft.Network/virtualNetworks/\', concat(subscription().displayName, \'-vnet\'))]'| +//@[224:225) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + vWanVhubName: { +//@[36:48) Identifier |vWanVhubName| +//@[48:49) Colon |:| +//@[50:51) LeftBrace |{| +//@[51:52) NewLine |\n| + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),split(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,\'/\')[8],json(\'null\'))]' +//@[38:43) Identifier |value| +//@[43:44) Colon |:| +//@[45:340) StringComplete |'[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),split(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.vWanVhubResourceId,\'/\')[8],json(\'null\'))]'| +//@[340:341) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + allowHubToRemoteVnetTransit: { +//@[36:63) Identifier |allowHubToRemoteVnetTransit| +//@[63:64) Colon |:| +//@[65:66) LeftBrace |{| +//@[66:67) NewLine |\n| + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.properties.allowHubToRemoteVnetTransit,json(\'null\'))]' +//@[38:43) Identifier |value| +//@[43:44) Colon |:| +//@[45:344) StringComplete |'[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.properties.allowHubToRemoteVnetTransit,json(\'null\'))]'| +//@[344:345) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + allowRemoteVnetToUseHubVnetGateways: { +//@[36:71) Identifier |allowRemoteVnetToUseHubVnetGateways| +//@[71:72) Colon |:| +//@[73:74) LeftBrace |{| +//@[74:75) NewLine |\n| + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.properties.allowRemoteVnetToUseHubVnetGateways,json(\'null\'))]' +//@[38:43) Identifier |value| +//@[43:44) Colon |:| +//@[45:352) StringComplete |'[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.properties.allowRemoteVnetToUseHubVnetGateways,json(\'null\'))]'| +//@[352:353) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + enableInternetSecurity: { +//@[36:58) Identifier |enableInternetSecurity| +//@[58:59) Colon |:| +//@[60:61) LeftBrace |{| +//@[61:62) NewLine |\n| + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.properties.enableInternetSecurity,json(\'null\'))]' +//@[38:43) Identifier |value| +//@[43:44) Colon |:| +//@[45:339) StringComplete |'[if(and(contains(parameters(\'ipam\')[copyIndex()],\'hubVirtualNetworkConnection\'),contains(parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection,\'vWanVhubResourceId\')),parameters(\'ipam\')[copyIndex()].hubVirtualNetworkConnection.properties.enableInternetSecurity,json(\'null\'))]'| +//@[339:340) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + condition: '[and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\'),contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\'))]' +//@[32:41) Identifier |condition| +//@[41:42) Colon |:| +//@[43:292) StringComplete |'[and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworks\'),contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\'))]'| +//@[292:293) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:71) StringComplete |'Microsoft.Resources/deployments'| +//@[71:72) NewLine |\n| + apiVersion: '2020-06-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2020-06-01'| +//@[56:57) NewLine |\n| + name: '[concat(\'es-ipam-hub-\',subscription().displayName,\'-peering-\',copyIndex())]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:119) StringComplete |'[concat(\'es-ipam-hub-\',subscription().displayName,\'-peering-\',copyIndex())]'| +//@[119:120) NewLine |\n| + subscriptionId: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\')),split(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,\'/\')[2],json(\'null\'))]' +//@[32:46) Identifier |subscriptionId| +//@[46:47) Colon |:| +//@[48:360) StringComplete |'[if(and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\')),split(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,\'/\')[2],json(\'null\'))]'| +//@[360:361) NewLine |\n| + resourceGroup: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\')),split(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,\'/\')[4],json(\'null\'))]' +//@[32:45) Identifier |resourceGroup| +//@[45:46) Colon |:| +//@[47:359) StringComplete |'[if(and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\')),split(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,\'/\')[4],json(\'null\'))]'| +//@[359:360) NewLine |\n| + dependsOn: [ +//@[32:41) Identifier |dependsOn| +//@[41:42) Colon |:| +//@[43:44) LeftSquare |[| +//@[44:45) NewLine |\n| + '[concat(subscription().displayName, \'-vnet\')]' +//@[34:83) StringComplete |'[concat(subscription().displayName, \'-vnet\')]'| +//@[83:84) NewLine |\n| + ] +//@[32:33) RightSquare |]| +//@[33:34) NewLine |\n| + properties: { +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + mode: 'Incremental' +//@[34:38) Identifier |mode| +//@[38:39) Colon |:| +//@[40:53) StringComplete |'Incremental'| +//@[53:54) NewLine |\n| + expressionEvaluationOptions: { +//@[34:61) Identifier |expressionEvaluationOptions| +//@[61:62) Colon |:| +//@[63:64) LeftBrace |{| +//@[64:65) NewLine |\n| + scope: 'inner' +//@[36:41) Identifier |scope| +//@[41:42) Colon |:| +//@[43:50) StringComplete |'inner'| +//@[50:51) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + template: { +//@[34:42) Identifier |template| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[36:45) StringComplete |'$schema'| +//@[45:46) Colon |:| +//@[47:128) StringComplete |'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[128:129) NewLine |\n| + contentVersion: '1.0.0.0' +//@[36:50) Identifier |contentVersion| +//@[50:51) Colon |:| +//@[52:61) StringComplete |'1.0.0.0'| +//@[61:62) NewLine |\n| + parameters: { +//@[36:46) Identifier |parameters| +//@[46:47) Colon |:| +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + remoteVirtualNetwork: { +//@[38:58) Identifier |remoteVirtualNetwork| +//@[58:59) Colon |:| +//@[60:61) LeftBrace |{| +//@[61:62) NewLine |\n| + Type: 'string' +//@[40:44) Identifier |Type| +//@[44:45) Colon |:| +//@[46:54) StringComplete |'string'| +//@[54:55) NewLine |\n| + defaultValue: false +//@[40:52) Identifier |defaultValue| +//@[52:53) Colon |:| +//@[54:59) FalseKeyword |false| +//@[59:60) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + hubName: { +//@[38:45) Identifier |hubName| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + Type: 'string' +//@[40:44) Identifier |Type| +//@[44:45) Colon |:| +//@[46:54) StringComplete |'string'| +//@[54:55) NewLine |\n| + defaultValue: false +//@[40:52) Identifier |defaultValue| +//@[52:53) Colon |:| +//@[54:59) FalseKeyword |false| +//@[59:60) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + variables: {} +//@[36:45) Identifier |variables| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) RightBrace |}| +//@[49:50) NewLine |\n| + resources: [ +//@[36:45) Identifier |resources| +//@[45:46) Colon |:| +//@[47:48) LeftSquare |[| +//@[48:49) NewLine |\n| + { +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'Microsoft.Network/virtualNetworks/virtualNetworkPeerings' +//@[40:44) Identifier |type| +//@[44:45) Colon |:| +//@[46:104) StringComplete |'Microsoft.Network/virtualNetworks/virtualNetworkPeerings'| +//@[104:105) NewLine |\n| + name: '[[concat(parameters(\'hubName\'),\'/\',last(split(parameters(\'remoteVirtualNetwork\'),\'/\')))]' +//@[40:44) Identifier |name| +//@[44:45) Colon |:| +//@[46:144) StringComplete |'[[concat(parameters(\'hubName\'),\'/\',last(split(parameters(\'remoteVirtualNetwork\'),\'/\')))]'| +//@[144:145) NewLine |\n| + apiVersion: '2020-05-01' +//@[40:50) Identifier |apiVersion| +//@[50:51) Colon |:| +//@[52:64) StringComplete |'2020-05-01'| +//@[64:65) NewLine |\n| + properties: { +//@[40:50) Identifier |properties| +//@[50:51) Colon |:| +//@[52:53) LeftBrace |{| +//@[53:54) NewLine |\n| + allowVirtualNetworkAccess: true +//@[42:67) Identifier |allowVirtualNetworkAccess| +//@[67:68) Colon |:| +//@[69:73) TrueKeyword |true| +//@[73:74) NewLine |\n| + allowForwardedTraffic: true +//@[42:63) Identifier |allowForwardedTraffic| +//@[63:64) Colon |:| +//@[65:69) TrueKeyword |true| +//@[69:70) NewLine |\n| + allowGatewayTransit: true +//@[42:61) Identifier |allowGatewayTransit| +//@[61:62) Colon |:| +//@[63:67) TrueKeyword |true| +//@[67:68) NewLine |\n| + useRemoteGateways: false +//@[42:59) Identifier |useRemoteGateways| +//@[59:60) Colon |:| +//@[61:66) FalseKeyword |false| +//@[66:67) NewLine |\n| + remoteVirtualNetwork: { +//@[42:62) Identifier |remoteVirtualNetwork| +//@[62:63) Colon |:| +//@[64:65) LeftBrace |{| +//@[65:66) NewLine |\n| + id: '[[parameters(\'remoteVirtualNetwork\')]' +//@[44:46) Identifier |id| +//@[46:47) Colon |:| +//@[48:89) StringComplete |'[[parameters(\'remoteVirtualNetwork\')]'| +//@[89:90) NewLine |\n| + } +//@[42:43) RightBrace |}| +//@[43:44) NewLine |\n| + } +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + } +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + ] +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + outputs: {} +//@[36:43) Identifier |outputs| +//@[43:44) Colon |:| +//@[45:46) LeftBrace |{| +//@[46:47) RightBrace |}| +//@[47:48) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + parameters: { +//@[34:44) Identifier |parameters| +//@[44:45) Colon |:| +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + remoteVirtualNetwork: { +//@[36:56) Identifier |remoteVirtualNetwork| +//@[56:57) Colon |:| +//@[58:59) LeftBrace |{| +//@[59:60) NewLine |\n| + value: '[concat(subscription().id,\'/resourceGroups/\',variables(\'vNetRgName\'), \'/providers/\',\'Microsoft.Network/virtualNetworks/\', concat(subscription().displayName, \'-vnet\'))]' +//@[38:43) Identifier |value| +//@[43:44) Colon |:| +//@[45:224) StringComplete |'[concat(subscription().id,\'/resourceGroups/\',variables(\'vNetRgName\'), \'/providers/\',\'Microsoft.Network/virtualNetworks/\', concat(subscription().displayName, \'-vnet\'))]'| +//@[224:225) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + hubName: { +//@[36:43) Identifier |hubName| +//@[43:44) Colon |:| +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + value: '[if(and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\')),split(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,\'/\')[8],json(\'null\'))]' +//@[38:43) Identifier |value| +//@[43:44) Colon |:| +//@[45:357) StringComplete |'[if(and(contains(parameters(\'ipam\')[copyIndex()],\'virtualNetworkPeerings\'),contains(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork,\'id\')),split(parameters(\'ipam\')[copyIndex()].virtualNetworkPeerings.properties.remoteVirtualNetwork.id,\'/\')[8],json(\'null\'))]'| +//@[357:358) NewLine |\n| + } +//@[36:37) RightBrace |}| +//@[37:38) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + outputs: {} +//@[28:35) Identifier |outputs| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + resourceGroup: '[variables(\'vNetRgName\')]' +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:68) StringComplete |'[variables(\'vNetRgName\')]'| +//@[68:69) NewLine |\n| + copy: { +//@[24:28) Identifier |copy| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + name: 'ipam-loop' +//@[26:30) Identifier |name| +//@[30:31) Colon |:| +//@[32:43) StringComplete |'ipam-loop'| +//@[43:44) NewLine |\n| + count: '[length(parameters(\'ipam\'))]' +//@[26:31) Identifier |count| +//@[31:32) Colon |:| +//@[33:65) StringComplete |'[length(parameters(\'ipam\'))]'| +//@[65:66) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + condition: '[if(and(not(empty(parameters(\'ipam\'))), equals(toLower(parameters(\'ipam\')[copyIndex()].name),toLower(variables(\'vNetName\')))),bool(\'true\'),bool(\'false\'))]' +//@[24:33) Identifier |condition| +//@[33:34) Colon |:| +//@[35:201) StringComplete |'[if(and(not(empty(parameters(\'ipam\'))), equals(toLower(parameters(\'ipam\')[copyIndex()].name),toLower(variables(\'vNetName\')))),bool(\'true\'),bool(\'false\'))]'| +//@[201:202) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: { +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) NewLine |\n| + ipam: { +//@[22:26) Identifier |ipam| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + condition: '[bool(\'true\')]' +//@[24:33) Identifier |condition| +//@[33:34) Colon |:| +//@[35:53) StringComplete |'[bool(\'true\')]'| +//@[53:54) NewLine |\n| + type: 'Int' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:35) StringComplete |'Int'| +//@[35:36) NewLine |\n| + value: '[length(parameters(\'ipam\'))]' +//@[24:29) Identifier |value| +//@[29:30) Colon |:| +//@[31:63) StringComplete |'[length(parameters(\'ipam\'))]'| +//@[63:64) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-vNet' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:25) StringComplete |'Deploy-vNet'| +//@[25:26) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploy the Virtual WAN in the specific region.' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:69) StringComplete |'Deploy the Virtual WAN in the specific region.'| +//@[69:70) NewLine |\n| + DisplayName: 'Deploy the Virtual WAN in the specific region' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:68) StringComplete |'Deploy the Virtual WAN in the specific region'| +//@[68:69) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + vwanname: { +//@[10:18) Identifier |vwanname| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'vwanname' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:37) StringComplete |'vwanname'| +//@[37:38) NewLine |\n| + description: 'Name of the Virtual WAN' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Name of the Virtual WAN'| +//@[52:53) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + vwanRegion: { +//@[10:20) Identifier |vwanRegion| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'vwanRegion' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:39) StringComplete |'vwanRegion'| +//@[39:40) NewLine |\n| + description: 'Select Azure region for Virtual WAN' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:64) StringComplete |'Select Azure region for Virtual WAN'| +//@[64:65) NewLine |\n| + strongType: 'location' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:36) StringComplete |'location'| +//@[36:37) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + rgName: { +//@[10:16) Identifier |rgName| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'rgName' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'rgName'| +//@[35:36) NewLine |\n| + description: 'Provide name for resource group.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:61) StringComplete |'Provide name for resource group.'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Resources/subscriptions' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringComplete |'Microsoft.Resources/subscriptions'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/virtualWans' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:51) StringComplete |'Microsoft.Network/virtualWans'| +//@[51:52) NewLine |\n| + deploymentScope: 'Subscription' +//@[14:29) Identifier |deploymentScope| +//@[29:30) Colon |:| +//@[31:45) StringComplete |'Subscription'| +//@[45:46) NewLine |\n| + existenceScope: 'ResourceGroup' +//@[14:28) Identifier |existenceScope| +//@[28:29) Colon |:| +//@[30:45) StringComplete |'ResourceGroup'| +//@[45:46) NewLine |\n| + name: '[parameters(\'vwanname\')]' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:48) StringComplete |'[parameters(\'vwanname\')]'| +//@[48:49) NewLine |\n| + resourceGroupName: '[parameters(\'rgName\')]' +//@[14:31) Identifier |resourceGroupName| +//@[31:32) Colon |:| +//@[33:59) StringComplete |'[parameters(\'rgName\')]'| +//@[59:60) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + location: 'northeurope' +//@[16:24) Identifier |location| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'northeurope'| +//@[39:40) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + rgName: { +//@[20:26) Identifier |rgName| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'rgName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:55) StringComplete |'[parameters(\'rgName\')]'| +//@[55:56) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + vwanname: { +//@[20:28) Identifier |vwanname| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[parameters(\'vwanname\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:57) StringComplete |'[parameters(\'vwanname\')]'| +//@[57:58) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + vwanRegion: { +//@[20:30) Identifier |vwanRegion| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + value: '[parameters(\'vwanRegion\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:59) StringComplete |'[parameters(\'vwanRegion\')]'| +//@[59:60) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:122) StringComplete |'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json'| +//@[122:123) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + rgName: { +//@[22:28) Identifier |rgName| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + vwanname: { +//@[22:30) Identifier |vwanname| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + vwanRegion: { +//@[22:32) Identifier |vwanRegion| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: { +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) NewLine |\n| + vwansku: 'Standard' +//@[22:29) Identifier |vwansku| +//@[29:30) Colon |:| +//@[31:41) StringComplete |'Standard'| +//@[41:42) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/resourceGroups' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:66) StringComplete |'Microsoft.Resources/resourceGroups'| +//@[66:67) NewLine |\n| + apiVersion: '2018-05-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2018-05-01'| +//@[48:49) NewLine |\n| + name: '[parameters(\'rgName\')]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:56) StringComplete |'[parameters(\'rgName\')]'| +//@[56:57) NewLine |\n| + location: '[deployment().location]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:59) StringComplete |'[deployment().location]'| +//@[59:60) NewLine |\n| + properties: {} +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) RightBrace |}| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2018-05-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2018-05-01'| +//@[48:49) NewLine |\n| + name: 'vwan' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:36) StringComplete |'vwan'| +//@[36:37) NewLine |\n| + resourceGroup: '[parameters(\'rgName\')]' +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:65) StringComplete |'[parameters(\'rgName\')]'| +//@[65:66) NewLine |\n| + dependsOn: [ +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' +//@[26:105) StringComplete |'[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]'| +//@[105:106) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json' +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:118) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json'| +//@[118:119) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + resources: [ +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Network/virtualWans' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:69) StringComplete |'Microsoft.Network/virtualWans'| +//@[69:70) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + location: '[parameters(\'vwanRegion\')]' +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:72) StringComplete |'[parameters(\'vwanRegion\')]'| +//@[72:73) NewLine |\n| + name: '[parameters(\'vwanname\')]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:66) StringComplete |'[parameters(\'vwanname\')]'| +//@[66:67) NewLine |\n| + properties: { +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + virtualHubs: [] +//@[34:45) Identifier |virtualHubs| +//@[45:46) Colon |:| +//@[47:48) LeftSquare |[| +//@[48:49) RightSquare |]| +//@[49:50) NewLine |\n| + vpnSites: [] +//@[34:42) Identifier |vpnSites| +//@[42:43) Colon |:| +//@[44:45) LeftSquare |[| +//@[45:46) RightSquare |]| +//@[46:47) NewLine |\n| + type: '[variables(\'vwansku\')]' +//@[34:38) Identifier |type| +//@[38:39) Colon |:| +//@[40:66) StringComplete |'[variables(\'vwansku\')]'| +//@[66:67) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + outputs: {} +//@[28:35) Identifier |outputs| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) RightBrace |}| +//@[39:40) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-vWAN' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:25) StringComplete |'Deploy-vWAN'| +//@[25:26) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploy Virtual Hub network with Virtual Wan and Gateway and Firewall configured in the desired region. ' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:126) StringComplete |'Deploy Virtual Hub network with Virtual Wan and Gateway and Firewall configured in the desired region. '| +//@[126:127) NewLine |\n| + DisplayName: 'Deploy Virtual Hub network with Virtual Wan and Gateway and Firewall configured.' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:103) StringComplete |'Deploy Virtual Hub network with Virtual Wan and Gateway and Firewall configured.'| +//@[103:104) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + vwanname: { +//@[10:18) Identifier |vwanname| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'vwanname' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:37) StringComplete |'vwanname'| +//@[37:38) NewLine |\n| + description: 'Name of the Virtual WAN' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Name of the Virtual WAN'| +//@[52:53) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + vHubName: { +//@[10:18) Identifier |vHubName| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'vHubName' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:37) StringComplete |'vHubName'| +//@[37:38) NewLine |\n| + description: 'Name of the vHUB' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:45) StringComplete |'Name of the vHUB'| +//@[45:46) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: '' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:28) StringComplete |''| +//@[28:29) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + vHUB: { +//@[10:14) Identifier |vHUB| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + type: 'Object' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'Object'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'vHUB' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:33) StringComplete |'vHUB'| +//@[33:34) NewLine |\n| + description: 'Object describing Virtual WAN vHUB' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:63) StringComplete |'Object describing Virtual WAN vHUB'| +//@[63:64) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + vpngw: { +//@[10:15) Identifier |vpngw| +//@[15:16) Colon |:| +//@[17:18) LeftBrace |{| +//@[18:19) NewLine |\n| + type: 'Object' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'Object'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'vpngw' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:34) StringComplete |'vpngw'| +//@[34:35) NewLine |\n| + description: 'Object describing VPN gateway' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:58) StringComplete |'Object describing VPN gateway'| +//@[58:59) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: {} +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) RightBrace |}| +//@[28:29) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + ergw: { +//@[10:14) Identifier |ergw| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + type: 'Object' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'Object'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'ergw' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:33) StringComplete |'ergw'| +//@[33:34) NewLine |\n| + description: 'Object describing ExpressRoute gateway' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:67) StringComplete |'Object describing ExpressRoute gateway'| +//@[67:68) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: {} +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) RightBrace |}| +//@[28:29) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + azfw: { +//@[10:14) Identifier |azfw| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + type: 'Object' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'Object'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'azfw' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:33) StringComplete |'azfw'| +//@[33:34) NewLine |\n| + description: 'Object describing the Azure Firewall in vHUB' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:73) StringComplete |'Object describing the Azure Firewall in vHUB'| +//@[73:74) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + defaultValue: {} +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) RightBrace |}| +//@[28:29) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + rgName: { +//@[10:16) Identifier |rgName| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'rgName' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'rgName'| +//@[35:36) NewLine |\n| + description: 'Provide name for resource group.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:61) StringComplete |'Provide name for resource group.'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Resources/subscriptions' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringComplete |'Microsoft.Resources/subscriptions'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Network/virtualHubs' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:51) StringComplete |'Microsoft.Network/virtualHubs'| +//@[51:52) NewLine |\n| + name: '[parameters(\'vHubName\')]' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:48) StringComplete |'[parameters(\'vHubName\')]'| +//@[48:49) NewLine |\n| + deploymentScope: 'Subscription' +//@[14:29) Identifier |deploymentScope| +//@[29:30) Colon |:| +//@[31:45) StringComplete |'Subscription'| +//@[45:46) NewLine |\n| + existenceScope: 'ResourceGroup' +//@[14:28) Identifier |existenceScope| +//@[28:29) Colon |:| +//@[30:45) StringComplete |'ResourceGroup'| +//@[45:46) NewLine |\n| + ResourceGroupName: '[parameters(\'rgName\')]' +//@[14:31) Identifier |ResourceGroupName| +//@[31:32) Colon |:| +//@[33:59) StringComplete |'[parameters(\'rgName\')]'| +//@[59:60) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + location: 'northeurope' +//@[16:24) Identifier |location| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'northeurope'| +//@[39:40) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + rgName: { +//@[20:26) Identifier |rgName| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'rgName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:55) StringComplete |'[parameters(\'rgName\')]'| +//@[55:56) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + vwanname: { +//@[20:28) Identifier |vwanname| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[parameters(\'vwanname\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:57) StringComplete |'[parameters(\'vwanname\')]'| +//@[57:58) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + vHUB: { +//@[20:24) Identifier |vHUB| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + value: '[parameters(\'vHUB\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:53) StringComplete |'[parameters(\'vHUB\')]'| +//@[53:54) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + vpngw: { +//@[20:25) Identifier |vpngw| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'vpngw\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:54) StringComplete |'[parameters(\'vpngw\')]'| +//@[54:55) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + ergw: { +//@[20:24) Identifier |ergw| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + value: '[parameters(\'ergw\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:53) StringComplete |'[parameters(\'ergw\')]'| +//@[53:54) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + azfw: { +//@[20:24) Identifier |azfw| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + value: '[parameters(\'azfw\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:53) StringComplete |'[parameters(\'azfw\')]'| +//@[53:54) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + vHUBName: { +//@[20:28) Identifier |vHUBName| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[parameters(\'vHUBName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:57) StringComplete |'[parameters(\'vHUBName\')]'| +//@[57:58) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:122) StringComplete |'http://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json'| +//@[122:123) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + vwanname: { +//@[22:30) Identifier |vwanname| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'Name of the Virtual WAN' +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:64) StringComplete |'Name of the Virtual WAN'| +//@[64:65) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + vHUB: { +//@[22:26) Identifier |vHUB| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + type: 'object' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'object'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'Object describing Virtual WAN vHUB' +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:75) StringComplete |'Object describing Virtual WAN vHUB'| +//@[75:76) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + vpngw: { +//@[22:27) Identifier |vpngw| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) NewLine |\n| + type: 'object' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'object'| +//@[38:39) NewLine |\n| + defaultValue: {} +//@[24:36) Identifier |defaultValue| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + metadata: { +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'Object describing VPN gateway' +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'Object describing VPN gateway'| +//@[70:71) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ergw: { +//@[22:26) Identifier |ergw| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + type: 'object' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'object'| +//@[38:39) NewLine |\n| + defaultValue: {} +//@[24:36) Identifier |defaultValue| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + metadata: { +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'Object describing ExpressRoute gateway' +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:79) StringComplete |'Object describing ExpressRoute gateway'| +//@[79:80) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + azfw: { +//@[22:26) Identifier |azfw| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + type: 'object' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'object'| +//@[38:39) NewLine |\n| + defaultValue: {} +//@[24:36) Identifier |defaultValue| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) RightBrace |}| +//@[40:41) NewLine |\n| + metadata: { +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + description: 'Object describing the Azure Firewall in vHUB' +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:85) StringComplete |'Object describing the Azure Firewall in vHUB'| +//@[85:86) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + rgName: { +//@[22:28) Identifier |rgName| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'String' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'String'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + displayName: 'rgName' +//@[26:37) Identifier |displayName| +//@[37:38) Colon |:| +//@[39:47) StringComplete |'rgName'| +//@[47:48) NewLine |\n| + description: 'Provide name for resource group.' +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'Provide name for resource group.'| +//@[73:74) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + vHUBName: { +//@[22:30) Identifier |vHUBName| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'String' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'String'| +//@[38:39) NewLine |\n| + metadata: { +//@[24:32) Identifier |metadata| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + displayName: 'vHUBName' +//@[26:37) Identifier |displayName| +//@[37:38) Colon |:| +//@[39:49) StringComplete |'vHUBName'| +//@[49:50) NewLine |\n| + description: 'Name of the vHUB' +//@[26:37) Identifier |description| +//@[37:38) Colon |:| +//@[39:57) StringComplete |'Name of the vHUB'| +//@[57:58) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: { +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) NewLine |\n| + vhubsku: 'Standard' +//@[22:29) Identifier |vhubsku| +//@[29:30) Colon |:| +//@[31:41) StringComplete |'Standard'| +//@[41:42) NewLine |\n| + vwanresourceid: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'),\'/providers/Microsoft.Network/virtualWans/\',parameters(\'vwanname\'))]' +//@[22:36) Identifier |vwanresourceid| +//@[36:37) Colon |:| +//@[38:182) StringComplete |'[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'),\'/providers/Microsoft.Network/virtualWans/\',parameters(\'vwanname\'))]'| +//@[182:183) NewLine |\n| + vwanhub: '[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'),\'/providers/Microsoft.Network/virtualHubs/\',parameters(\'vHUBName\'))]' +//@[22:29) Identifier |vwanhub| +//@[29:30) Colon |:| +//@[31:175) StringComplete |'[concat(subscription().id,\'/resourceGroups/\',parameters(\'rgName\'),\'/providers/Microsoft.Network/virtualHubs/\',parameters(\'vHUBName\'))]'| +//@[175:176) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/resourceGroups' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:66) StringComplete |'Microsoft.Resources/resourceGroups'| +//@[66:67) NewLine |\n| + apiVersion: '2018-05-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2018-05-01'| +//@[48:49) NewLine |\n| + name: '[parameters(\'rgName\')]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:56) StringComplete |'[parameters(\'rgName\')]'| +//@[56:57) NewLine |\n| + location: '[deployment().location]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:59) StringComplete |'[deployment().location]'| +//@[59:60) NewLine |\n| + properties: {} +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) RightBrace |}| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2018-05-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2018-05-01'| +//@[48:49) NewLine |\n| + name: '[concat(\'vHUBdeploy-\',parameters(\'vHUB\').location)]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:87) StringComplete |'[concat(\'vHUBdeploy-\',parameters(\'vHUB\').location)]'| +//@[87:88) NewLine |\n| + resourceGroup: '[parameters(\'rgName\')]' +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:65) StringComplete |'[parameters(\'rgName\')]'| +//@[65:66) NewLine |\n| + dependsOn: [ +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]' +//@[26:105) StringComplete |'[resourceId(\'Microsoft.Resources/resourceGroups/\', parameters(\'rgName\'))]'| +//@[105:106) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:120) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[120:121) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Network/virtualHubs' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:69) StringComplete |'Microsoft.Network/virtualHubs'| +//@[69:70) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + location: '[parameters(\'vHUB\').location]' +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:75) StringComplete |'[parameters(\'vHUB\').location]'| +//@[75:76) NewLine |\n| + name: '[parameters(\'vHUBname\')]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:66) StringComplete |'[parameters(\'vHUBname\')]'| +//@[66:67) NewLine |\n| + properties: { +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + virtualWan: { +//@[34:44) Identifier |virtualWan| +//@[44:45) Colon |:| +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + id: '[variables(\'vwanresourceid\')]' +//@[36:38) Identifier |id| +//@[38:39) Colon |:| +//@[40:73) StringComplete |'[variables(\'vwanresourceid\')]'| +//@[73:74) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + addressPrefix: '[parameters(\'vHUB\').addressPrefix]' +//@[34:47) Identifier |addressPrefix| +//@[47:48) Colon |:| +//@[49:87) StringComplete |'[parameters(\'vHUB\').addressPrefix]'| +//@[87:88) NewLine |\n| + sku: '[variables(\'vhubsku\')]' +//@[34:37) Identifier |sku| +//@[37:38) Colon |:| +//@[39:65) StringComplete |'[variables(\'vhubsku\')]'| +//@[65:66) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2018-05-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2018-05-01'| +//@[48:49) NewLine |\n| + condition: '[greater(length(parameters(\'vpngw\')),0)]' +//@[24:33) Identifier |condition| +//@[33:34) Colon |:| +//@[35:79) StringComplete |'[greater(length(parameters(\'vpngw\')),0)]'| +//@[79:80) NewLine |\n| + resourceGroup: '[parameters(\'rgName\')]' +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:65) StringComplete |'[parameters(\'rgName\')]'| +//@[65:66) NewLine |\n| + dependsOn: [ +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(\'vHUBdeploy-\',parameters(\'vHUB\').location)]' +//@[26:83) StringComplete |'[concat(\'vHUBdeploy-\',parameters(\'vHUB\').location)]'| +//@[83:84) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + name: '[concat(parameters(\'vHUBName\'),\'-vpngw\')]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:77) StringComplete |'[concat(parameters(\'vHUBName\'),\'-vpngw\')]'| +//@[77:78) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:120) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[120:121) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Network/vpnGateways' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:69) StringComplete |'Microsoft.Network/vpnGateways'| +//@[69:70) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + location: '[parameters(\'vHUB\').location]' +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:75) StringComplete |'[parameters(\'vHUB\').location]'| +//@[75:76) NewLine |\n| + name: '[parameters(\'vpngw\').name]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:68) StringComplete |'[parameters(\'vpngw\').name]'| +//@[68:69) NewLine |\n| + properties: { +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + virtualHub: { +//@[34:44) Identifier |virtualHub| +//@[44:45) Colon |:| +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + id: '[variables(\'vwanhub\')]' +//@[36:38) Identifier |id| +//@[38:39) Colon |:| +//@[40:66) StringComplete |'[variables(\'vwanhub\')]'| +//@[66:67) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + bgpSettings: '[parameters(\'vpngw\').bgpSettings]' +//@[34:45) Identifier |bgpSettings| +//@[45:46) Colon |:| +//@[47:84) StringComplete |'[parameters(\'vpngw\').bgpSettings]'| +//@[84:85) NewLine |\n| + vpnGatewayScaleUnit: '[parameters(\'vpngw\').vpnGatewayScaleUnit]' +//@[34:53) Identifier |vpnGatewayScaleUnit| +//@[53:54) Colon |:| +//@[55:100) StringComplete |'[parameters(\'vpngw\').vpnGatewayScaleUnit]'| +//@[100:101) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Resources/deployments' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:63) StringComplete |'Microsoft.Resources/deployments'| +//@[63:64) NewLine |\n| + apiVersion: '2018-05-01' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2018-05-01'| +//@[48:49) NewLine |\n| + condition: '[greater(length(parameters(\'ergw\')),0)]' +//@[24:33) Identifier |condition| +//@[33:34) Colon |:| +//@[35:78) StringComplete |'[greater(length(parameters(\'ergw\')),0)]'| +//@[78:79) NewLine |\n| + resourceGroup: '[parameters(\'rgName\')]' +//@[24:37) Identifier |resourceGroup| +//@[37:38) Colon |:| +//@[39:65) StringComplete |'[parameters(\'rgName\')]'| +//@[65:66) NewLine |\n| + dependsOn: [ +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + '[concat(\'vHUBdeploy-\',parameters(\'vHUB\').location)]' +//@[26:83) StringComplete |'[concat(\'vHUBdeploy-\',parameters(\'vHUB\').location)]'| +//@[83:84) NewLine |\n| + ] +//@[24:25) RightSquare |]| +//@[25:26) NewLine |\n| + name: '[concat(parameters(\'vHUBName\'),\'-ergw\')]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:76) StringComplete |'[concat(parameters(\'vHUBName\'),\'-ergw\')]'| +//@[76:77) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + mode: 'Incremental' +//@[26:30) Identifier |mode| +//@[30:31) Colon |:| +//@[32:45) StringComplete |'Incremental'| +//@[45:46) NewLine |\n| + template: { +//@[26:34) Identifier |template| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#' +//@[28:37) StringComplete |'$schema'| +//@[37:38) Colon |:| +//@[39:120) StringComplete |'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'| +//@[120:121) NewLine |\n| + contentVersion: '1.0.0.0' +//@[28:42) Identifier |contentVersion| +//@[42:43) Colon |:| +//@[44:53) StringComplete |'1.0.0.0'| +//@[53:54) NewLine |\n| + parameters: {} +//@[28:38) Identifier |parameters| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) RightBrace |}| +//@[42:43) NewLine |\n| + variables: {} +//@[28:37) Identifier |variables| +//@[37:38) Colon |:| +//@[39:40) LeftBrace |{| +//@[40:41) RightBrace |}| +//@[41:42) NewLine |\n| + resources: [ +//@[28:37) Identifier |resources| +//@[37:38) Colon |:| +//@[39:40) LeftSquare |[| +//@[40:41) NewLine |\n| + { +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'Microsoft.Network/expressRouteGateways' +//@[32:36) Identifier |type| +//@[36:37) Colon |:| +//@[38:78) StringComplete |'Microsoft.Network/expressRouteGateways'| +//@[78:79) NewLine |\n| + apiVersion: '2020-05-01' +//@[32:42) Identifier |apiVersion| +//@[42:43) Colon |:| +//@[44:56) StringComplete |'2020-05-01'| +//@[56:57) NewLine |\n| + location: '[parameters(\'vHUB\').location]' +//@[32:40) Identifier |location| +//@[40:41) Colon |:| +//@[42:75) StringComplete |'[parameters(\'vHUB\').location]'| +//@[75:76) NewLine |\n| + name: '[parameters(\'ergw\').name]' +//@[32:36) Identifier |name| +//@[36:37) Colon |:| +//@[38:67) StringComplete |'[parameters(\'ergw\').name]'| +//@[67:68) NewLine |\n| + properties: { +//@[32:42) Identifier |properties| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + virtualHub: { +//@[34:44) Identifier |virtualHub| +//@[44:45) Colon |:| +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + id: '[variables(\'vwanhub\')]' +//@[36:38) Identifier |id| +//@[38:39) Colon |:| +//@[40:66) StringComplete |'[variables(\'vwanhub\')]'| +//@[66:67) NewLine |\n| + } +//@[34:35) RightBrace |}| +//@[35:36) NewLine |\n| + autoScaleConfiguration: '[parameters(\'ergw\').autoScaleConfiguration]' +//@[34:56) Identifier |autoScaleConfiguration| +//@[56:57) Colon |:| +//@[58:105) StringComplete |'[parameters(\'ergw\').autoScaleConfiguration]'| +//@[105:106) NewLine |\n| + } +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + ] +//@[28:29) RightSquare |]| +//@[29:30) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-vHUB' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:25) StringComplete |'Deploy-vHUB'| +//@[25:26) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for Virtual Machine Scale Sets to stream to a Log Analytics workspace when any Virtual Machine Scale Sets which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:300) StringComplete |'Deploys the diagnostic settings for Virtual Machine Scale Sets to stream to a Log Analytics workspace when any Virtual Machine Scale Sets which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[300:301) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for Virtual Machine Scale Sets to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:107) StringComplete |'Deploy Diagnostic Settings for Virtual Machine Scale Sets to Log Analytics workspace'| +//@[107:108) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Compute/virtualMachineScaleSets' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:63) StringComplete |'Microsoft.Compute/virtualMachineScaleSets'| +//@[63:64) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Compute/virtualMachineScaleSets/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:102) StringComplete |'Microsoft.Compute/virtualMachineScaleSets/providers/diagnosticSettings'| +//@[102:103) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [] +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) RightSquare |]| +//@[34:35) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-VMSS' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:37) StringComplete |'Deploy-Diagnostics-VMSS'| +//@[37:38) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploys the diagnostic settings for VPN Gateway to stream to a Log Analytics workspace when any VPN Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:269) StringComplete |'Deploys the diagnostic settings for VPN Gateway to stream to a Log Analytics workspace when any VPN Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.'| +//@[269:270) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings for VPN Gateway to Log Analytics workspace' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:92) StringComplete |'Deploy Diagnostic Settings for VPN Gateway to Log Analytics workspace'| +//@[92:93) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + metricsEnabled: { +//@[10:24) Identifier |metricsEnabled| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable metrics' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'Enable metrics'| +//@[43:44) NewLine |\n| + description: 'Whether to enable metrics stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Whether to enable metrics stream to the Log Analytics workspace - True or False'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + logsEnabled: { +//@[10:21) Identifier |logsEnabled| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'True' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'True'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'True' +//@[14:20) StringComplete |'True'| +//@[20:21) NewLine |\n| + 'False' +//@[14:21) StringComplete |'False'| +//@[21:22) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Enable logs' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:40) StringComplete |'Enable logs'| +//@[40:41) NewLine |\n| + description: 'Whether to enable logs stream to the Log Analytics workspace - True or False' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Whether to enable logs stream to the Log Analytics workspace - True or False'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[12:17) Identifier |field| +//@[17:18) Colon |:| +//@[19:25) StringComplete |'type'| +//@[25:26) NewLine |\n| + equals: 'Microsoft.Network/virtualNetworkGateways' +//@[12:18) Identifier |equals| +//@[18:19) Colon |:| +//@[20:62) StringComplete |'Microsoft.Network/virtualNetworkGateways'| +//@[62:63) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Insights/diagnosticSettings' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:59) StringComplete |'Microsoft.Insights/diagnosticSettings'| +//@[59:60) NewLine |\n| + name: 'setByPolicy' +//@[14:18) Identifier |name| +//@[18:19) Colon |:| +//@[20:33) StringComplete |'setByPolicy'| +//@[33:34) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/logs.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Microsoft.Insights/diagnosticSettings/logs.enabled'| +//@[79:80) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/metrics.enabled' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Microsoft.Insights/diagnosticSettings/metrics.enabled'| +//@[82:83) NewLine |\n| + equals: 'true' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:34) StringComplete |'true'| +//@[34:35) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Insights/diagnosticSettings/workspaceId' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Insights/diagnosticSettings/workspaceId'| +//@[78:79) NewLine |\n| + equals: '[parameters(\'logAnalytics\')]' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:60) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[60:61) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa'| +//@[105:106) NewLine |\n| + '/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293' +//@[16:105) StringComplete |'/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:111) StringComplete |'http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[111:112) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + resourceName: { +//@[22:34) Identifier |resourceName| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logAnalytics: { +//@[22:34) Identifier |logAnalytics| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + profileName: { +//@[22:33) Identifier |profileName| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + metricsEnabled: { +//@[22:36) Identifier |metricsEnabled| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + logsEnabled: { +//@[22:33) Identifier |logsEnabled| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: {} +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) RightBrace |}| +//@[33:34) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'Microsoft.Network/virtualNetworkGateways/providers/diagnosticSettings' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:101) StringComplete |'Microsoft.Network/virtualNetworkGateways/providers/diagnosticSettings'| +//@[101:102) NewLine |\n| + apiVersion: '2017-05-01-preview' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:56) StringComplete |'2017-05-01-preview'| +//@[56:57) NewLine |\n| + name: '[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:131) StringComplete |'[concat(parameters(\'resourceName\'), \'/\', \'Microsoft.Insights/\', parameters(\'profileName\'))]'| +//@[131:132) NewLine |\n| + location: '[parameters(\'location\')]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[parameters(\'location\')]'| +//@[62:63) NewLine |\n| + dependsOn: [] +//@[24:33) Identifier |dependsOn| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) RightSquare |]| +//@[37:38) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + workspaceId: '[parameters(\'logAnalytics\')]' +//@[26:37) Identifier |workspaceId| +//@[37:38) Colon |:| +//@[39:71) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[71:72) NewLine |\n| + metrics: [ +//@[26:33) Identifier |metrics| +//@[33:34) Colon |:| +//@[35:36) LeftSquare |[| +//@[36:37) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'AllMetrics' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:52) StringComplete |'AllMetrics'| +//@[52:53) NewLine |\n| + enabled: '[parameters(\'metricsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:73) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[73:74) NewLine |\n| + retentionPolicy: { +//@[30:45) Identifier |retentionPolicy| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + days: 0 +//@[32:36) Identifier |days| +//@[36:37) Colon |:| +//@[38:39) Integer |0| +//@[39:40) NewLine |\n| + enabled: false +//@[32:39) Identifier |enabled| +//@[39:40) Colon |:| +//@[41:46) FalseKeyword |false| +//@[46:47) NewLine |\n| + } +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + timeGrain: null +//@[30:39) Identifier |timeGrain| +//@[39:40) Colon |:| +//@[41:45) NullKeyword |null| +//@[45:46) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + logs: [ +//@[26:30) Identifier |logs| +//@[30:31) Colon |:| +//@[32:33) LeftSquare |[| +//@[33:34) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'GatewayDiagnosticLog' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:62) StringComplete |'GatewayDiagnosticLog'| +//@[62:63) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'IKEDiagnosticLog' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:58) StringComplete |'IKEDiagnosticLog'| +//@[58:59) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'P2SDiagnosticLog' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:58) StringComplete |'P2SDiagnosticLog'| +//@[58:59) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'RouteDiagnosticLog' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:60) StringComplete |'RouteDiagnosticLog'| +//@[60:61) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'RouteDiagnosticLog' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:60) StringComplete |'RouteDiagnosticLog'| +//@[60:61) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + { +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + category: 'TunnelDiagnosticLog' +//@[30:38) Identifier |category| +//@[38:39) Colon |:| +//@[40:61) StringComplete |'TunnelDiagnosticLog'| +//@[61:62) NewLine |\n| + enabled: '[parameters(\'logsEnabled\')]' +//@[30:37) Identifier |enabled| +//@[37:38) Colon |:| +//@[39:70) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[70:71) NewLine |\n| + } +//@[28:29) RightBrace |}| +//@[29:30) NewLine |\n| + ] +//@[26:27) RightSquare |]| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + logAnalytics: { +//@[20:32) Identifier |logAnalytics| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resourceName: { +//@[20:32) Identifier |resourceName| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + profileName: { +//@[20:31) Identifier |profileName| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'profileName\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + metricsEnabled: { +//@[20:34) Identifier |metricsEnabled| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + value: '[parameters(\'metricsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:63) StringComplete |'[parameters(\'metricsEnabled\')]'| +//@[63:64) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + logsEnabled: { +//@[20:31) Identifier |logsEnabled| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + value: '[parameters(\'logsEnabled\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:60) StringComplete |'[parameters(\'logsEnabled\')]'| +//@[60:61) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Diagnostics-VNetGW' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:39) StringComplete |'Deploy-Diagnostics-VNetGW'| +//@[39:40) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploy Windows Domain Join Extension with keyvault configuration when the extension does not exist on a given windows Virtual Machine' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:156) StringComplete |'Deploy Windows Domain Join Extension with keyvault configuration when the extension does not exist on a given windows Virtual Machine'| +//@[156:157) NewLine |\n| + DisplayName: 'Deploy Windows Domain Join Extension with keyvault configuration' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:87) StringComplete |'Deploy Windows Domain Join Extension with keyvault configuration'| +//@[87:88) NewLine |\n| + Mode: 'Indexed' +//@[8:12) Identifier |Mode| +//@[12:13) Colon |:| +//@[14:23) StringComplete |'Indexed'| +//@[23:24) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + domainUsername: { +//@[10:24) Identifier |domainUsername| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'domainUsername' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'domainUsername'| +//@[43:44) NewLine |\n| + description: null +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + domainPassword: { +//@[10:24) Identifier |domainPassword| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'domainPassword' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:43) StringComplete |'domainPassword'| +//@[43:44) NewLine |\n| + description: null +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + domainFQDN: { +//@[10:20) Identifier |domainFQDN| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'domainFQDN' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:39) StringComplete |'domainFQDN'| +//@[39:40) NewLine |\n| + description: null +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + domainOUPath: { +//@[10:22) Identifier |domainOUPath| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'domainOUPath' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'domainOUPath'| +//@[41:42) NewLine |\n| + description: null +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + keyVaultResourceId: { +//@[10:28) Identifier |keyVaultResourceId| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'keyVaultResourceId' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:47) StringComplete |'keyVaultResourceId'| +//@[47:48) NewLine |\n| + description: null +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:31) NullKeyword |null| +//@[31:32) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + effect: { +//@[10:16) Identifier |effect| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Effect' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:35) StringComplete |'Effect'| +//@[35:36) NewLine |\n| + description: 'Enable or disable the execution of the policy' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Enable or disable the execution of the policy'| +//@[74:75) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Guest Configuration' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:41) StringComplete |'Guest Configuration'| +//@[41:42) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyRule: { +//@[8:18) Identifier |PolicyRule| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + if: { +//@[10:12) Identifier |if| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + allOf: [ +//@[12:17) Identifier |allOf| +//@[17:18) Colon |:| +//@[19:20) LeftSquare |[| +//@[20:21) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'type' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:29) StringComplete |'type'| +//@[29:30) NewLine |\n| + equals: 'Microsoft.Compute/virtualMachines' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:59) StringComplete |'Microsoft.Compute/virtualMachines'| +//@[59:60) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.Compute/imagePublisher' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:57) StringComplete |'Microsoft.Compute/imagePublisher'| +//@[57:58) NewLine |\n| + equals: 'MicrosoftWindowsServer' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:48) StringComplete |'MicrosoftWindowsServer'| +//@[48:49) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.Compute/imageOffer' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:53) StringComplete |'Microsoft.Compute/imageOffer'| +//@[53:54) NewLine |\n| + equals: 'WindowsServer' +//@[16:22) Identifier |equals| +//@[22:23) Colon |:| +//@[24:39) StringComplete |'WindowsServer'| +//@[39:40) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + { +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + field: 'Microsoft.Compute/imageSKU' +//@[16:21) Identifier |field| +//@[21:22) Colon |:| +//@[23:51) StringComplete |'Microsoft.Compute/imageSKU'| +//@[51:52) NewLine |\n| + in: [ +//@[16:18) Identifier |in| +//@[18:19) Colon |:| +//@[20:21) LeftSquare |[| +//@[21:22) NewLine |\n| + '2008-R2-SP1' +//@[18:31) StringComplete |'2008-R2-SP1'| +//@[31:32) NewLine |\n| + '2008-R2-SP1-smalldisk' +//@[18:41) StringComplete |'2008-R2-SP1-smalldisk'| +//@[41:42) NewLine |\n| + '2008-R2-SP1-zhcn' +//@[18:36) StringComplete |'2008-R2-SP1-zhcn'| +//@[36:37) NewLine |\n| + '2012-Datacenter' +//@[18:35) StringComplete |'2012-Datacenter'| +//@[35:36) NewLine |\n| + '2012-datacenter-gensecond' +//@[18:45) StringComplete |'2012-datacenter-gensecond'| +//@[45:46) NewLine |\n| + '2012-Datacenter-smalldisk' +//@[18:45) StringComplete |'2012-Datacenter-smalldisk'| +//@[45:46) NewLine |\n| + '2012-datacenter-smalldisk-g2' +//@[18:48) StringComplete |'2012-datacenter-smalldisk-g2'| +//@[48:49) NewLine |\n| + '2012-Datacenter-zhcn' +//@[18:40) StringComplete |'2012-Datacenter-zhcn'| +//@[40:41) NewLine |\n| + '2012-datacenter-zhcn-g2' +//@[18:43) StringComplete |'2012-datacenter-zhcn-g2'| +//@[43:44) NewLine |\n| + '2012-R2-Datacenter' +//@[18:38) StringComplete |'2012-R2-Datacenter'| +//@[38:39) NewLine |\n| + '2012-r2-datacenter-gensecond' +//@[18:48) StringComplete |'2012-r2-datacenter-gensecond'| +//@[48:49) NewLine |\n| + '2012-R2-Datacenter-smalldisk' +//@[18:48) StringComplete |'2012-R2-Datacenter-smalldisk'| +//@[48:49) NewLine |\n| + '2012-r2-datacenter-smalldisk-g2' +//@[18:51) StringComplete |'2012-r2-datacenter-smalldisk-g2'| +//@[51:52) NewLine |\n| + '2012-R2-Datacenter-zhcn' +//@[18:43) StringComplete |'2012-R2-Datacenter-zhcn'| +//@[43:44) NewLine |\n| + '2012-r2-datacenter-zhcn-g2' +//@[18:46) StringComplete |'2012-r2-datacenter-zhcn-g2'| +//@[46:47) NewLine |\n| + '2016-Datacenter' +//@[18:35) StringComplete |'2016-Datacenter'| +//@[35:36) NewLine |\n| + '2016-datacenter-gensecond' +//@[18:45) StringComplete |'2016-datacenter-gensecond'| +//@[45:46) NewLine |\n| + '2016-datacenter-gs' +//@[18:38) StringComplete |'2016-datacenter-gs'| +//@[38:39) NewLine |\n| + '2016-Datacenter-Server-Core' +//@[18:47) StringComplete |'2016-Datacenter-Server-Core'| +//@[47:48) NewLine |\n| + '2016-datacenter-server-core-g2' +//@[18:50) StringComplete |'2016-datacenter-server-core-g2'| +//@[50:51) NewLine |\n| + '2016-Datacenter-Server-Core-smalldisk' +//@[18:57) StringComplete |'2016-Datacenter-Server-Core-smalldisk'| +//@[57:58) NewLine |\n| + '2016-datacenter-server-core-smalldisk-g2' +//@[18:60) StringComplete |'2016-datacenter-server-core-smalldisk-g2'| +//@[60:61) NewLine |\n| + '2016-Datacenter-smalldisk' +//@[18:45) StringComplete |'2016-Datacenter-smalldisk'| +//@[45:46) NewLine |\n| + '2016-datacenter-smalldisk-g2' +//@[18:48) StringComplete |'2016-datacenter-smalldisk-g2'| +//@[48:49) NewLine |\n| + '2016-Datacenter-with-Containers' +//@[18:51) StringComplete |'2016-Datacenter-with-Containers'| +//@[51:52) NewLine |\n| + '2016-datacenter-with-containers-g2' +//@[18:54) StringComplete |'2016-datacenter-with-containers-g2'| +//@[54:55) NewLine |\n| + '2016-Datacenter-with-RDSH' +//@[18:45) StringComplete |'2016-Datacenter-with-RDSH'| +//@[45:46) NewLine |\n| + '2016-Datacenter-zhcn' +//@[18:40) StringComplete |'2016-Datacenter-zhcn'| +//@[40:41) NewLine |\n| + '2016-datacenter-zhcn-g2' +//@[18:43) StringComplete |'2016-datacenter-zhcn-g2'| +//@[43:44) NewLine |\n| + '2019-Datacenter' +//@[18:35) StringComplete |'2019-Datacenter'| +//@[35:36) NewLine |\n| + '2019-Datacenter-Core' +//@[18:40) StringComplete |'2019-Datacenter-Core'| +//@[40:41) NewLine |\n| + '2019-datacenter-core-g2' +//@[18:43) StringComplete |'2019-datacenter-core-g2'| +//@[43:44) NewLine |\n| + '2019-Datacenter-Core-smalldisk' +//@[18:50) StringComplete |'2019-Datacenter-Core-smalldisk'| +//@[50:51) NewLine |\n| + '2019-datacenter-core-smalldisk-g2' +//@[18:53) StringComplete |'2019-datacenter-core-smalldisk-g2'| +//@[53:54) NewLine |\n| + '2019-Datacenter-Core-with-Containers' +//@[18:56) StringComplete |'2019-Datacenter-Core-with-Containers'| +//@[56:57) NewLine |\n| + '2019-datacenter-core-with-containers-g2' +//@[18:59) StringComplete |'2019-datacenter-core-with-containers-g2'| +//@[59:60) NewLine |\n| + '2019-Datacenter-Core-with-Containers-smalldisk' +//@[18:66) StringComplete |'2019-Datacenter-Core-with-Containers-smalldisk'| +//@[66:67) NewLine |\n| + '2019-datacenter-core-with-containers-smalldisk-g2' +//@[18:69) StringComplete |'2019-datacenter-core-with-containers-smalldisk-g2'| +//@[69:70) NewLine |\n| + '2019-datacenter-gensecond' +//@[18:45) StringComplete |'2019-datacenter-gensecond'| +//@[45:46) NewLine |\n| + '2019-datacenter-gs' +//@[18:38) StringComplete |'2019-datacenter-gs'| +//@[38:39) NewLine |\n| + '2019-Datacenter-smalldisk' +//@[18:45) StringComplete |'2019-Datacenter-smalldisk'| +//@[45:46) NewLine |\n| + '2019-datacenter-smalldisk-g2' +//@[18:48) StringComplete |'2019-datacenter-smalldisk-g2'| +//@[48:49) NewLine |\n| + '2019-Datacenter-with-Containers' +//@[18:51) StringComplete |'2019-Datacenter-with-Containers'| +//@[51:52) NewLine |\n| + '2019-datacenter-with-containers-g2' +//@[18:54) StringComplete |'2019-datacenter-with-containers-g2'| +//@[54:55) NewLine |\n| + '2019-Datacenter-with-Containers-smalldisk' +//@[18:61) StringComplete |'2019-Datacenter-with-Containers-smalldisk'| +//@[61:62) NewLine |\n| + '2019-datacenter-with-containers-smalldisk-g2' +//@[18:64) StringComplete |'2019-datacenter-with-containers-smalldisk-g2'| +//@[64:65) NewLine |\n| + '2019-Datacenter-zhcn' +//@[18:40) StringComplete |'2019-Datacenter-zhcn'| +//@[40:41) NewLine |\n| + '2019-datacenter-zhcn-g2' +//@[18:43) StringComplete |'2019-datacenter-zhcn-g2'| +//@[43:44) NewLine |\n| + 'Datacenter-Core-1803-with-Containers-smalldisk' +//@[18:66) StringComplete |'Datacenter-Core-1803-with-Containers-smalldisk'| +//@[66:67) NewLine |\n| + 'datacenter-core-1803-with-containers-smalldisk-g2' +//@[18:69) StringComplete |'datacenter-core-1803-with-containers-smalldisk-g2'| +//@[69:70) NewLine |\n| + 'Datacenter-Core-1809-with-Containers-smalldisk' +//@[18:66) StringComplete |'Datacenter-Core-1809-with-Containers-smalldisk'| +//@[66:67) NewLine |\n| + 'datacenter-core-1809-with-containers-smalldisk-g2' +//@[18:69) StringComplete |'datacenter-core-1809-with-containers-smalldisk-g2'| +//@[69:70) NewLine |\n| + 'Datacenter-Core-1903-with-Containers-smalldisk' +//@[18:66) StringComplete |'Datacenter-Core-1903-with-Containers-smalldisk'| +//@[66:67) NewLine |\n| + 'datacenter-core-1903-with-containers-smalldisk-g2' +//@[18:69) StringComplete |'datacenter-core-1903-with-containers-smalldisk-g2'| +//@[69:70) NewLine |\n| + 'datacenter-core-1909-with-containers-smalldisk' +//@[18:66) StringComplete |'datacenter-core-1909-with-containers-smalldisk'| +//@[66:67) NewLine |\n| + 'datacenter-core-1909-with-containers-smalldisk-g1' +//@[18:69) StringComplete |'datacenter-core-1909-with-containers-smalldisk-g1'| +//@[69:70) NewLine |\n| + 'datacenter-core-1909-with-containers-smalldisk-g2' +//@[18:69) StringComplete |'datacenter-core-1909-with-containers-smalldisk-g2'| +//@[69:70) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + then: { +//@[10:14) Identifier |then| +//@[14:15) Colon |:| +//@[16:17) LeftBrace |{| +//@[17:18) NewLine |\n| + effect: '[parameters(\'effect\')]' +//@[12:18) Identifier |effect| +//@[18:19) Colon |:| +//@[20:46) StringComplete |'[parameters(\'effect\')]'| +//@[46:47) NewLine |\n| + details: { +//@[12:19) Identifier |details| +//@[19:20) Colon |:| +//@[21:22) LeftBrace |{| +//@[22:23) NewLine |\n| + type: 'Microsoft.Compute/virtualMachines/extensions' +//@[14:18) Identifier |type| +//@[18:19) Colon |:| +//@[20:66) StringComplete |'Microsoft.Compute/virtualMachines/extensions'| +//@[66:67) NewLine |\n| + roleDefinitionIds: [ +//@[14:31) Identifier |roleDefinitionIds| +//@[31:32) Colon |:| +//@[33:34) LeftSquare |[| +//@[34:35) NewLine |\n| + '/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c' +//@[16:105) StringComplete |'/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c'| +//@[105:106) NewLine |\n| + ] +//@[14:15) RightSquare |]| +//@[15:16) NewLine |\n| + existenceCondition: { +//@[14:32) Identifier |existenceCondition| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + allOf: [ +//@[16:21) Identifier |allOf| +//@[21:22) Colon |:| +//@[23:24) LeftSquare |[| +//@[24:25) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Compute/virtualMachines/extensions/type' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:78) StringComplete |'Microsoft.Compute/virtualMachines/extensions/type'| +//@[78:79) NewLine |\n| + equals: 'JsonADDomainExtension' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:51) StringComplete |'JsonADDomainExtension'| +//@[51:52) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + { +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + field: 'Microsoft.Compute/virtualMachines/extensions/publisher' +//@[20:25) Identifier |field| +//@[25:26) Colon |:| +//@[27:83) StringComplete |'Microsoft.Compute/virtualMachines/extensions/publisher'| +//@[83:84) NewLine |\n| + equals: 'Microsoft.Compute' +//@[20:26) Identifier |equals| +//@[26:27) Colon |:| +//@[28:47) StringComplete |'Microsoft.Compute'| +//@[47:48) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + ] +//@[16:17) RightSquare |]| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + deployment: { +//@[14:24) Identifier |deployment| +//@[24:25) Colon |:| +//@[26:27) LeftBrace |{| +//@[27:28) NewLine |\n| + properties: { +//@[16:26) Identifier |properties| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + mode: 'incremental' +//@[18:22) Identifier |mode| +//@[22:23) Colon |:| +//@[24:37) StringComplete |'incremental'| +//@[37:38) NewLine |\n| + parameters: { +//@[18:28) Identifier |parameters| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + vmName: { +//@[20:26) Identifier |vmName| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[field(\'name\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:48) StringComplete |'[field(\'name\')]'| +//@[48:49) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + location: { +//@[20:28) Identifier |location| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + value: '[field(\'location\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:52) StringComplete |'[field(\'location\')]'| +//@[52:53) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + domainUsername: { +//@[20:34) Identifier |domainUsername| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + reference: { +//@[22:31) Identifier |reference| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + keyVault: { +//@[24:32) Identifier |keyVault| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + id: '[parameters(\'keyVaultResourceId\')]' +//@[26:28) Identifier |id| +//@[28:29) Colon |:| +//@[30:68) StringComplete |'[parameters(\'keyVaultResourceId\')]'| +//@[68:69) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + secretName: '[parameters(\'domainUsername\')]' +//@[24:34) Identifier |secretName| +//@[34:35) Colon |:| +//@[36:70) StringComplete |'[parameters(\'domainUsername\')]'| +//@[70:71) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + domainPassword: { +//@[20:34) Identifier |domainPassword| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + reference: { +//@[22:31) Identifier |reference| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + keyVault: { +//@[24:32) Identifier |keyVault| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + id: '[parameters(\'keyVaultResourceId\')]' +//@[26:28) Identifier |id| +//@[28:29) Colon |:| +//@[30:68) StringComplete |'[parameters(\'keyVaultResourceId\')]'| +//@[68:69) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + secretName: '[parameters(\'domainPassword\')]' +//@[24:34) Identifier |secretName| +//@[34:35) Colon |:| +//@[36:70) StringComplete |'[parameters(\'domainPassword\')]'| +//@[70:71) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + domainOUPath: { +//@[20:32) Identifier |domainOUPath| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + value: '[parameters(\'domainOUPath\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:61) StringComplete |'[parameters(\'domainOUPath\')]'| +//@[61:62) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + domainFQDN: { +//@[20:30) Identifier |domainFQDN| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + value: '[parameters(\'domainFQDN\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:59) StringComplete |'[parameters(\'domainFQDN\')]'| +//@[59:60) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + keyVaultResourceId: { +//@[20:38) Identifier |keyVaultResourceId| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + value: '[parameters(\'keyVaultResourceId\')]' +//@[22:27) Identifier |value| +//@[27:28) Colon |:| +//@[29:67) StringComplete |'[parameters(\'keyVaultResourceId\')]'| +//@[67:68) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + template: { +//@[18:26) Identifier |template| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + '$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#' +//@[20:29) StringComplete |'$schema'| +//@[29:30) Colon |:| +//@[31:112) StringComplete |'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#'| +//@[112:113) NewLine |\n| + contentVersion: '1.0.0.0' +//@[20:34) Identifier |contentVersion| +//@[34:35) Colon |:| +//@[36:45) StringComplete |'1.0.0.0'| +//@[45:46) NewLine |\n| + parameters: { +//@[20:30) Identifier |parameters| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + vmName: { +//@[22:28) Identifier |vmName| +//@[28:29) Colon |:| +//@[30:31) LeftBrace |{| +//@[31:32) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + location: { +//@[22:30) Identifier |location| +//@[30:31) Colon |:| +//@[32:33) LeftBrace |{| +//@[33:34) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + domainUsername: { +//@[22:36) Identifier |domainUsername| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + domainPassword: { +//@[22:36) Identifier |domainPassword| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'securestring' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:44) StringComplete |'securestring'| +//@[44:45) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + domainFQDN: { +//@[22:32) Identifier |domainFQDN| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + domainOUPath: { +//@[22:34) Identifier |domainOUPath| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + keyVaultResourceId: { +//@[22:40) Identifier |keyVaultResourceId| +//@[40:41) Colon |:| +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + type: 'string' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:38) StringComplete |'string'| +//@[38:39) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + variables: { +//@[20:29) Identifier |variables| +//@[29:30) Colon |:| +//@[31:32) LeftBrace |{| +//@[32:33) NewLine |\n| + domainJoinOptions: 3 +//@[22:39) Identifier |domainJoinOptions| +//@[39:40) Colon |:| +//@[41:42) Integer |3| +//@[42:43) NewLine |\n| + vmName: '[parameters(\'vmName\')]' +//@[22:28) Identifier |vmName| +//@[28:29) Colon |:| +//@[30:56) StringComplete |'[parameters(\'vmName\')]'| +//@[56:57) NewLine |\n| + } +//@[20:21) RightBrace |}| +//@[21:22) NewLine |\n| + resources: [ +//@[20:29) Identifier |resources| +//@[29:30) Colon |:| +//@[31:32) LeftSquare |[| +//@[32:33) NewLine |\n| + { +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + apiVersion: '2015-06-15' +//@[24:34) Identifier |apiVersion| +//@[34:35) Colon |:| +//@[36:48) StringComplete |'2015-06-15'| +//@[48:49) NewLine |\n| + type: 'Microsoft.Compute/virtualMachines/extensions' +//@[24:28) Identifier |type| +//@[28:29) Colon |:| +//@[30:76) StringComplete |'Microsoft.Compute/virtualMachines/extensions'| +//@[76:77) NewLine |\n| + name: '[concat(variables(\'vmName\'),\'/joindomain\')]' +//@[24:28) Identifier |name| +//@[28:29) Colon |:| +//@[30:79) StringComplete |'[concat(variables(\'vmName\'),\'/joindomain\')]'| +//@[79:80) NewLine |\n| + location: '[resourceGroup().location]' +//@[24:32) Identifier |location| +//@[32:33) Colon |:| +//@[34:62) StringComplete |'[resourceGroup().location]'| +//@[62:63) NewLine |\n| + properties: { +//@[24:34) Identifier |properties| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + publisher: 'Microsoft.Compute' +//@[26:35) Identifier |publisher| +//@[35:36) Colon |:| +//@[37:56) StringComplete |'Microsoft.Compute'| +//@[56:57) NewLine |\n| + type: 'JsonADDomainExtension' +//@[26:30) Identifier |type| +//@[30:31) Colon |:| +//@[32:55) StringComplete |'JsonADDomainExtension'| +//@[55:56) NewLine |\n| + typeHandlerVersion: '1.3' +//@[26:44) Identifier |typeHandlerVersion| +//@[44:45) Colon |:| +//@[46:51) StringComplete |'1.3'| +//@[51:52) NewLine |\n| + autoUpgradeMinorVersion: true +//@[26:49) Identifier |autoUpgradeMinorVersion| +//@[49:50) Colon |:| +//@[51:55) TrueKeyword |true| +//@[55:56) NewLine |\n| + settings: { +//@[26:34) Identifier |settings| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + Name: '[parameters(\'domainFQDN\')]' +//@[28:32) Identifier |Name| +//@[32:33) Colon |:| +//@[34:64) StringComplete |'[parameters(\'domainFQDN\')]'| +//@[64:65) NewLine |\n| + User: '[parameters(\'domainUserName\')]' +//@[28:32) Identifier |User| +//@[32:33) Colon |:| +//@[34:68) StringComplete |'[parameters(\'domainUserName\')]'| +//@[68:69) NewLine |\n| + Restart: 'true' +//@[28:35) Identifier |Restart| +//@[35:36) Colon |:| +//@[37:43) StringComplete |'true'| +//@[43:44) NewLine |\n| + Options: '[variables(\'domainJoinOptions\')]' +//@[28:35) Identifier |Options| +//@[35:36) Colon |:| +//@[37:73) StringComplete |'[variables(\'domainJoinOptions\')]'| +//@[73:74) NewLine |\n| + OUPath: '[parameters(\'domainOUPath\')]' +//@[28:34) Identifier |OUPath| +//@[34:35) Colon |:| +//@[36:68) StringComplete |'[parameters(\'domainOUPath\')]'| +//@[68:69) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + protectedSettings: { +//@[26:43) Identifier |protectedSettings| +//@[43:44) Colon |:| +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + Password: '[parameters(\'domainPassword\')]' +//@[28:36) Identifier |Password| +//@[36:37) Colon |:| +//@[38:72) StringComplete |'[parameters(\'domainPassword\')]'| +//@[72:73) NewLine |\n| + } +//@[26:27) RightBrace |}| +//@[27:28) NewLine |\n| + } +//@[24:25) RightBrace |}| +//@[25:26) NewLine |\n| + } +//@[22:23) RightBrace |}| +//@[23:24) NewLine |\n| + ] +//@[20:21) RightSquare |]| +//@[21:22) NewLine |\n| + outputs: {} +//@[20:27) Identifier |outputs| +//@[27:28) Colon |:| +//@[29:30) LeftBrace |{| +//@[30:31) RightBrace |}| +//@[31:32) NewLine |\n| + } +//@[18:19) RightBrace |}| +//@[19:20) NewLine |\n| + } +//@[16:17) RightBrace |}| +//@[17:18) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + name: 'Deploy-Windows-DomainJoin' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:39) StringComplete |'Deploy-Windows-DomainJoin'| +//@[39:40) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + ] +//@[2:3) RightSquare |]| +//@[3:4) NewLine |\n| +} +//@[0:1) RightBrace |}| +//@[1:2) NewLine |\n| +var initiatives = { +//@[0:3) Identifier |var| +//@[4:15) Identifier |initiatives| +//@[16:17) Assignment |=| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + policySetDefinitions: [ +//@[2:22) Identifier |policySetDefinitions| +//@[22:23) Colon |:| +//@[24:25) LeftSquare |[| +//@[25:26) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy set deploys the configurations of application Azure resources to forward diagnostic logs and metrics to an Azure Log Analytics workspace. See the list of policies of the services that are included ' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:232) StringComplete |'This policy set deploys the configurations of application Azure resources to forward diagnostic logs and metrics to an Azure Log Analytics workspace. See the list of policies of the services that are included '| +//@[232:233) NewLine |\n| + DisplayName: 'Deploy Diagnostic Settings to Azure Services' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:67) StringComplete |'Deploy Diagnostic Settings to Azure Services'| +//@[67:68) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + logAnalytics: { +//@[10:22) Identifier |logAnalytics| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + description: 'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:260) StringComplete |'Select Log Analytics workspace from dropdown list. If this workspace is outside of the scope of the assignment you must manually grant \'Log Analytics Contributor\' permissions (or similar) to the policy assignment\'s principal ID.'| +//@[260:261) NewLine |\n| + displayName: 'Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:52) StringComplete |'Log Analytics workspace'| +//@[52:53) NewLine |\n| + strongType: 'omsWorkspace' +//@[14:24) Identifier |strongType| +//@[24:25) Colon |:| +//@[26:40) StringComplete |'omsWorkspace'| +//@[40:41) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + profileName: { +//@[10:21) Identifier |profileName| +//@[21:22) Colon |:| +//@[23:24) LeftBrace |{| +//@[24:25) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'setbypolicy' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:39) StringComplete |'setbypolicy'| +//@[39:40) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Profile name' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:41) StringComplete |'Profile name'| +//@[41:42) NewLine |\n| + description: 'The diagnostic settings profile name' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:65) StringComplete |'The diagnostic settings profile name'| +//@[65:66) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + ACILogAnalyticsEffect: { +//@[10:31) Identifier |ACILogAnalyticsEffect| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Container Instances to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:106) StringComplete |'Deploy Diagnostic Settings for Container Instances to Log Analytics workspace'| +//@[106:107) NewLine |\n| + description: 'Deploys the diagnostic settings for Container Instances to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:261) StringComplete |'Deploys the diagnostic settings for Container Instances to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.'| +//@[261:262) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + ACRLogAnalyticsEffect: { +//@[10:31) Identifier |ACRLogAnalyticsEffect| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Container Registry to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Deploy Diagnostic Settings for Container Registry to Log Analytics workspace'| +//@[105:106) NewLine |\n| + description: 'Deploys the diagnostic settings for Container Registry to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:262) StringComplete |'Deploys the diagnostic settings for Container Registry to stream to a Log Analytics workspace when any ACR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics enabled.'| +//@[262:263) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + AKSLogAnalyticsEffect: { +//@[10:31) Identifier |AKSLogAnalyticsEffect| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Kubernetes Service to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Deploy Diagnostic Settings for Kubernetes Service to Log Analytics workspace'| +//@[105:106) NewLine |\n| + description: 'Deploys the diagnostic settings for Kubernetes Service to stream to a Log Analytics workspace when any Kubernetes Service which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:289) StringComplete |'Deploys the diagnostic settings for Kubernetes Service to stream to a Log Analytics workspace when any Kubernetes Service which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.'| +//@[289:290) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + AnalysisServiceLogAnalyticsEffect: { +//@[10:43) Identifier |AnalysisServiceLogAnalyticsEffect| +//@[43:44) Colon |:| +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Analysis Services to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:104) StringComplete |'Deploy Diagnostic Settings for Analysis Services to Log Analytics workspace'| +//@[104:105) NewLine |\n| + description: 'Deploys the diagnostic settings for Analysis Services to stream to a Log Analytics workspace when any Analysis Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:286) StringComplete |'Deploys the diagnostic settings for Analysis Services to stream to a Log Analytics workspace when any Analysis Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[286:287) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + APIMgmtLogAnalyticsEffect: { +//@[10:35) Identifier |APIMgmtLogAnalyticsEffect| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for API Management to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:101) StringComplete |'Deploy Diagnostic Settings for API Management to Log Analytics workspace'| +//@[101:102) NewLine |\n| + description: 'Deploys the diagnostic settings for API Management to stream to a Log Analytics workspace when any API Management which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:280) StringComplete |'Deploys the diagnostic settings for API Management to stream to a Log Analytics workspace when any API Management which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[280:281) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + ApplicationGatewayLogAnalyticsEffect: { +//@[10:46) Identifier |ApplicationGatewayLogAnalyticsEffect| +//@[46:47) Colon |:| +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Application Gateway to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:106) StringComplete |'Deploy Diagnostic Settings for Application Gateway to Log Analytics workspace'| +//@[106:107) NewLine |\n| + description: 'Deploys the diagnostic settings for Application Gateway to stream to a Log Analytics workspace when any Application Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:290) StringComplete |'Deploys the diagnostic settings for Application Gateway to stream to a Log Analytics workspace when any Application Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[290:291) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + AutomationLogAnalyticsEffect: { +//@[10:38) Identifier |AutomationLogAnalyticsEffect| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Automation to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:97) StringComplete |'Deploy Diagnostic Settings for Automation to Log Analytics workspace'| +//@[97:98) NewLine |\n| + description: 'Deploys the diagnostic settings for Automation to stream to a Log Analytics workspace when any Automation which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:272) StringComplete |'Deploys the diagnostic settings for Automation to stream to a Log Analytics workspace when any Automation which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[272:273) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + BatchLogAnalyticsEffect: { +//@[10:33) Identifier |BatchLogAnalyticsEffect| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Batch to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:92) StringComplete |'Deploy Diagnostic Settings for Batch to Log Analytics workspace'| +//@[92:93) NewLine |\n| + description: 'Deploys the diagnostic settings for Batch to stream to a Log Analytics workspace when any Batch which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:262) StringComplete |'Deploys the diagnostic settings for Batch to stream to a Log Analytics workspace when any Batch which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[262:263) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + CDNEndpointsLogAnalyticsEffect: { +//@[10:40) Identifier |CDNEndpointsLogAnalyticsEffect| +//@[40:41) Colon |:| +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for CDN Endpoint to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:99) StringComplete |'Deploy Diagnostic Settings for CDN Endpoint to Log Analytics workspace'| +//@[99:100) NewLine |\n| + description: 'Deploys the diagnostic settings for CDN Endpoint to stream to a Log Analytics workspace when any CDN Endpoint which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:276) StringComplete |'Deploys the diagnostic settings for CDN Endpoint to stream to a Log Analytics workspace when any CDN Endpoint which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[276:277) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + CognitiveServicesLogAnalyticsEffect: { +//@[10:45) Identifier |CognitiveServicesLogAnalyticsEffect| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Cognitive Services to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Deploy Diagnostic Settings for Cognitive Services to Log Analytics workspace'| +//@[105:106) NewLine |\n| + description: 'Deploys the diagnostic settings for Cognitive Services to stream to a Log Analytics workspace when any Cognitive Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:288) StringComplete |'Deploys the diagnostic settings for Cognitive Services to stream to a Log Analytics workspace when any Cognitive Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[288:289) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + CosmosLogAnalyticsEffect: { +//@[10:34) Identifier |CosmosLogAnalyticsEffect| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Cosmos DB to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:96) StringComplete |'Deploy Diagnostic Settings for Cosmos DB to Log Analytics workspace'| +//@[96:97) NewLine |\n| + description: 'Deploys the diagnostic settings for Cosmos DB to stream to a Log Analytics workspace when any Cosmos DB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:270) StringComplete |'Deploys the diagnostic settings for Cosmos DB to stream to a Log Analytics workspace when any Cosmos DB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[270:271) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + DatabricksLogAnalyticsEffect: { +//@[10:38) Identifier |DatabricksLogAnalyticsEffect| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Databricks to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:97) StringComplete |'Deploy Diagnostic Settings for Databricks to Log Analytics workspace'| +//@[97:98) NewLine |\n| + description: 'Deploys the diagnostic settings for Databricks to stream to a Log Analytics workspace when any Databricks which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:272) StringComplete |'Deploys the diagnostic settings for Databricks to stream to a Log Analytics workspace when any Databricks which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[272:273) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + DataFactoryLogAnalyticsEffect: { +//@[10:39) Identifier |DataFactoryLogAnalyticsEffect| +//@[39:40) Colon |:| +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Data Factory to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:99) StringComplete |'Deploy Diagnostic Settings for Data Factory to Log Analytics workspace'| +//@[99:100) NewLine |\n| + description: 'Deploys the diagnostic settings for Data Factory to stream to a Log Analytics workspace when any Data Factory which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:276) StringComplete |'Deploys the diagnostic settings for Data Factory to stream to a Log Analytics workspace when any Data Factory which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[276:277) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + DataLakeStoreLogAnalyticsEffect: { +//@[10:41) Identifier |DataLakeStoreLogAnalyticsEffect| +//@[41:42) Colon |:| +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Azure Data Lake Store to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Deploy Diagnostic Settings for Azure Data Lake Store to Log Analytics workspace'| +//@[108:109) NewLine |\n| + description: 'Deploys the diagnostic settings for Azure Data Lake Store to stream to a Log Analytics workspace when anyAzure Data Lake Store which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:293) StringComplete |'Deploys the diagnostic settings for Azure Data Lake Store to stream to a Log Analytics workspace when anyAzure Data Lake Store which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[293:294) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + DataLakeAnalyticsLogAnalyticsEffect: { +//@[10:45) Identifier |DataLakeAnalyticsLogAnalyticsEffect| +//@[45:46) Colon |:| +//@[47:48) LeftBrace |{| +//@[48:49) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Data Lake Analytics to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:106) StringComplete |'Deploy Diagnostic Settings for Data Lake Analytics to Log Analytics workspace'| +//@[106:107) NewLine |\n| + description: 'Deploys the diagnostic settings for Data Lake Analytics to stream to a Log Analytics workspace when any Data Lake Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:290) StringComplete |'Deploys the diagnostic settings for Data Lake Analytics to stream to a Log Analytics workspace when any Data Lake Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[290:291) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + EventGridSubLogAnalyticsEffect: { +//@[10:40) Identifier |EventGridSubLogAnalyticsEffect| +//@[40:41) Colon |:| +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Event Grid subscriptions to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:111) StringComplete |'Deploy Diagnostic Settings for Event Grid subscriptions to Log Analytics workspace'| +//@[111:112) NewLine |\n| + description: 'Deploys the diagnostic settings for Event Grid subscriptions to stream to a Log Analytics workspace when any Event Grid subscriptions which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:300) StringComplete |'Deploys the diagnostic settings for Event Grid subscriptions to stream to a Log Analytics workspace when any Event Grid subscriptions which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[300:301) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + EventGridTopicLogAnalyticsEffect: { +//@[10:42) Identifier |EventGridTopicLogAnalyticsEffect| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Event Grid Topic to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:103) StringComplete |'Deploy Diagnostic Settings for Event Grid Topic to Log Analytics workspace'| +//@[103:104) NewLine |\n| + description: 'Deploys the diagnostic settings for Event Grid Topic to stream to a Log Analytics workspace when any Event Grid Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:284) StringComplete |'Deploys the diagnostic settings for Event Grid Topic to stream to a Log Analytics workspace when any Event Grid Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[284:285) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + EventHubLogAnalyticsEffect: { +//@[10:36) Identifier |EventHubLogAnalyticsEffect| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Event Hubs to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:97) StringComplete |'Deploy Diagnostic Settings for Event Hubs to Log Analytics workspace'| +//@[97:98) NewLine |\n| + description: 'Deploys the diagnostic settings for Event Hubs to stream to a Log Analytics workspace when any Event Hubs which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:272) StringComplete |'Deploys the diagnostic settings for Event Hubs to stream to a Log Analytics workspace when any Event Hubs which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[272:273) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + EventSystemTopicLogAnalyticsEffect: { +//@[10:44) Identifier |EventSystemTopicLogAnalyticsEffect| +//@[44:45) Colon |:| +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Event Grid System Topic to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:110) StringComplete |'Deploy Diagnostic Settings for Event Grid System Topic to Log Analytics workspace'| +//@[110:111) NewLine |\n| + description: 'Deploys the diagnostic settings for Event Grid System Topic to stream to a Log Analytics workspace when any Event Grid System Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:298) StringComplete |'Deploys the diagnostic settings for Event Grid System Topic to stream to a Log Analytics workspace when any Event Grid System Topic which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[298:299) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + ExpressRouteLogAnalyticsEffect: { +//@[10:40) Identifier |ExpressRouteLogAnalyticsEffect| +//@[40:41) Colon |:| +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for ExpressRoute to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:99) StringComplete |'Deploy Diagnostic Settings for ExpressRoute to Log Analytics workspace'| +//@[99:100) NewLine |\n| + description: 'Deploys the diagnostic settings for ExpressRoute to stream to a Log Analytics workspace when any ExpressRoute which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:276) StringComplete |'Deploys the diagnostic settings for ExpressRoute to stream to a Log Analytics workspace when any ExpressRoute which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[276:277) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + FirewallLogAnalyticsEffect: { +//@[10:36) Identifier |FirewallLogAnalyticsEffect| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Firewall to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:95) StringComplete |'Deploy Diagnostic Settings for Firewall to Log Analytics workspace'| +//@[95:96) NewLine |\n| + description: 'Deploys the diagnostic settings for Firewall to stream to a Log Analytics workspace when any Firewall which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:268) StringComplete |'Deploys the diagnostic settings for Firewall to stream to a Log Analytics workspace when any Firewall which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[268:269) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + FrontDoorLogAnalyticsEffect: { +//@[10:37) Identifier |FrontDoorLogAnalyticsEffect| +//@[37:38) Colon |:| +//@[39:40) LeftBrace |{| +//@[40:41) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Front Door to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:97) StringComplete |'Deploy Diagnostic Settings for Front Door to Log Analytics workspace'| +//@[97:98) NewLine |\n| + description: 'Deploys the diagnostic settings for Front Door to stream to a Log Analytics workspace when any Front Door which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:272) StringComplete |'Deploys the diagnostic settings for Front Door to stream to a Log Analytics workspace when any Front Door which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[272:273) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + FunctionAppLogAnalyticsEffect: { +//@[10:39) Identifier |FunctionAppLogAnalyticsEffect| +//@[39:40) Colon |:| +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Azure Function App to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Deploy Diagnostic Settings for Azure Function App to Log Analytics workspace'| +//@[105:106) NewLine |\n| + description: 'Deploys the diagnostic settings for Azure Function App to stream to a Log Analytics workspace when any function app which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:282) StringComplete |'Deploys the diagnostic settings for Azure Function App to stream to a Log Analytics workspace when any function app which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[282:283) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + HDInsightLogAnalyticsEffect: { +//@[10:37) Identifier |HDInsightLogAnalyticsEffect| +//@[37:38) Colon |:| +//@[39:40) LeftBrace |{| +//@[40:41) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for HDInsight to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:96) StringComplete |'Deploy Diagnostic Settings for HDInsight to Log Analytics workspace'| +//@[96:97) NewLine |\n| + description: 'Deploys the diagnostic settings for HDInsight to stream to a Log Analytics workspace when any HDInsight which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:270) StringComplete |'Deploys the diagnostic settings for HDInsight to stream to a Log Analytics workspace when any HDInsight which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[270:271) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + IotHubLogAnalyticsEffect: { +//@[10:34) Identifier |IotHubLogAnalyticsEffect| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for IoT Hub to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:94) StringComplete |'Deploy Diagnostic Settings for IoT Hub to Log Analytics workspace'| +//@[94:95) NewLine |\n| + description: 'Deploys the diagnostic settings for IoT Hub to stream to a Log Analytics workspace when any IoT Hub which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:266) StringComplete |'Deploys the diagnostic settings for IoT Hub to stream to a Log Analytics workspace when any IoT Hub which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[266:267) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + KeyVaultLogAnalyticsEffect: { +//@[10:36) Identifier |KeyVaultLogAnalyticsEffect| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Key Vault to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:96) StringComplete |'Deploy Diagnostic Settings for Key Vault to Log Analytics workspace'| +//@[96:97) NewLine |\n| + description: 'Deploys the diagnostic settings for Key Vault to stream to a Log Analytics workspace when any Key Vault which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:270) StringComplete |'Deploys the diagnostic settings for Key Vault to stream to a Log Analytics workspace when any Key Vault which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[270:271) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + LoadBalancerLogAnalyticsEffect: { +//@[10:40) Identifier |LoadBalancerLogAnalyticsEffect| +//@[40:41) Colon |:| +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Load Balancer to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:100) StringComplete |'Deploy Diagnostic Settings for Load Balancer to Log Analytics workspace'| +//@[100:101) NewLine |\n| + description: 'Deploys the diagnostic settings for Load Balancer to stream to a Log Analytics workspace when any Load Balancer which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:278) StringComplete |'Deploys the diagnostic settings for Load Balancer to stream to a Log Analytics workspace when any Load Balancer which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[278:279) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + LogicAppsISELogAnalyticsEffect: { +//@[10:40) Identifier |LogicAppsISELogAnalyticsEffect| +//@[40:41) Colon |:| +//@[42:43) LeftBrace |{| +//@[43:44) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Logic Apps integration service environment to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:129) StringComplete |'Deploy Diagnostic Settings for Logic Apps integration service environment to Log Analytics workspace'| +//@[129:130) NewLine |\n| + description: 'Deploys the diagnostic settings for Logic Apps integration service environment to stream to a Log Analytics workspace when any Logic Apps integration service environment which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:336) StringComplete |'Deploys the diagnostic settings for Logic Apps integration service environment to stream to a Log Analytics workspace when any Logic Apps integration service environment which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[336:337) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + LogicAppsWFLogAnalyticsEffect: { +//@[10:39) Identifier |LogicAppsWFLogAnalyticsEffect| +//@[39:40) Colon |:| +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Logic Apps Workflow runtime to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:114) StringComplete |'Deploy Diagnostic Settings for Logic Apps Workflow runtime to Log Analytics workspace'| +//@[114:115) NewLine |\n| + description: 'Deploys the diagnostic settings for Logic Apps Workflow runtimeto stream to a Log Analytics workspace when any Logic Apps Workflow runtime which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:305) StringComplete |'Deploys the diagnostic settings for Logic Apps Workflow runtimeto stream to a Log Analytics workspace when any Logic Apps Workflow runtime which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[305:306) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + MariaDBLogAnalyticsEffect: { +//@[10:35) Identifier |MariaDBLogAnalyticsEffect| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for MariaDB to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:94) StringComplete |'Deploy Diagnostic Settings for MariaDB to Log Analytics workspace'| +//@[94:95) NewLine |\n| + description: 'Deploys the diagnostic settings for MariaDB to stream to a Log Analytics workspace when any MariaDB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:267) StringComplete |'Deploys the diagnostic settings for MariaDB to stream to a Log Analytics workspace when any MariaDB which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[267:268) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + MlWorkspaceLogAnalyticsEffect: { +//@[10:39) Identifier |MlWorkspaceLogAnalyticsEffect| +//@[39:40) Colon |:| +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Machine Learning workspace to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:113) StringComplete |'Deploy Diagnostic Settings for Machine Learning workspace to Log Analytics workspace'| +//@[113:114) NewLine |\n| + description: 'Deploys the diagnostic settings for Machine Learning workspace to stream to a Log Analytics workspace when any Machine Learning workspace which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:304) StringComplete |'Deploys the diagnostic settings for Machine Learning workspace to stream to a Log Analytics workspace when any Machine Learning workspace which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[304:305) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + MySQLLogAnalyticsEffect: { +//@[10:33) Identifier |MySQLLogAnalyticsEffect| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Database for MySQL to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Deploy Diagnostic Settings for Database for MySQL to Log Analytics workspace'| +//@[105:106) NewLine |\n| + description: 'Deploys the diagnostic settings for Database for MySQL to stream to a Log Analytics workspace when any Database for MySQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:288) StringComplete |'Deploys the diagnostic settings for Database for MySQL to stream to a Log Analytics workspace when any Database for MySQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[288:289) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + NetworkSecurityGroupsLogAnalyticsEffect: { +//@[10:49) Identifier |NetworkSecurityGroupsLogAnalyticsEffect| +//@[49:50) Colon |:| +//@[51:52) LeftBrace |{| +//@[52:53) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Network Security Groups to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:110) StringComplete |'Deploy Diagnostic Settings for Network Security Groups to Log Analytics workspace'| +//@[110:111) NewLine |\n| + description: 'Deploys the diagnostic settings for Network Security Groups to stream to a Log Analytics workspace when any Network Security Groups which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:298) StringComplete |'Deploys the diagnostic settings for Network Security Groups to stream to a Log Analytics workspace when any Network Security Groups which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[298:299) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + NetworkNICLogAnalyticsEffect: { +//@[10:38) Identifier |NetworkNICLogAnalyticsEffect| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Network Interfaces to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Deploy Diagnostic Settings for Network Interfaces to Log Analytics workspace'| +//@[105:106) NewLine |\n| + description: 'Deploys the diagnostic settings for Network Interfaces to stream to a Log Analytics workspace when any Network Interfaces which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:288) StringComplete |'Deploys the diagnostic settings for Network Interfaces to stream to a Log Analytics workspace when any Network Interfaces which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[288:289) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + PostgreSQLLogAnalyticsEffect: { +//@[10:38) Identifier |PostgreSQLLogAnalyticsEffect| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Database for PostgreSQL to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:110) StringComplete |'Deploy Diagnostic Settings for Database for PostgreSQL to Log Analytics workspace'| +//@[110:111) NewLine |\n| + description: 'Deploys the diagnostic settings for Database for PostgreSQL to stream to a Log Analytics workspace when any Database for PostgreSQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:298) StringComplete |'Deploys the diagnostic settings for Database for PostgreSQL to stream to a Log Analytics workspace when any Database for PostgreSQL which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[298:299) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + PowerBIEmbeddedLogAnalyticsEffect: { +//@[10:43) Identifier |PowerBIEmbeddedLogAnalyticsEffect| +//@[43:44) Colon |:| +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Power BI Embedded to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:104) StringComplete |'Deploy Diagnostic Settings for Power BI Embedded to Log Analytics workspace'| +//@[104:105) NewLine |\n| + description: 'Deploys the diagnostic settings for Power BI Embedded to stream to a Log Analytics workspace when any Power BI Embedded which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:286) StringComplete |'Deploys the diagnostic settings for Power BI Embedded to stream to a Log Analytics workspace when any Power BI Embedded which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[286:287) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + NetworkPublicIPNicLogAnalyticsEffect: { +//@[10:46) Identifier |NetworkPublicIPNicLogAnalyticsEffect| +//@[46:47) Colon |:| +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Public IP addresses to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:106) StringComplete |'Deploy Diagnostic Settings for Public IP addresses to Log Analytics workspace'| +//@[106:107) NewLine |\n| + description: 'Deploys the diagnostic settings for Public IP addresses to stream to a Log Analytics workspace when any Public IP addresses which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:290) StringComplete |'Deploys the diagnostic settings for Public IP addresses to stream to a Log Analytics workspace when any Public IP addresses which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[290:291) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + RecoveryVaultLogAnalyticsEffect: { +//@[10:41) Identifier |RecoveryVaultLogAnalyticsEffect| +//@[41:42) Colon |:| +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Recovery Services vaults to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:111) StringComplete |'Deploy Diagnostic Settings for Recovery Services vaults to Log Analytics workspace'| +//@[111:112) NewLine |\n| + description: 'Deploys the diagnostic settings for Recovery Services vaults to stream to a Log Analytics workspace when any Recovery Services vaults which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:300) StringComplete |'Deploys the diagnostic settings for Recovery Services vaults to stream to a Log Analytics workspace when any Recovery Services vaults which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[300:301) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + RedisCacheLogAnalyticsEffect: { +//@[10:38) Identifier |RedisCacheLogAnalyticsEffect| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Redis Cache to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:98) StringComplete |'Deploy Diagnostic Settings for Redis Cache to Log Analytics workspace'| +//@[98:99) NewLine |\n| + description: 'Deploys the diagnostic settings for Redis Cache to stream to a Log Analytics workspace when any Redis Cache which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:274) StringComplete |'Deploys the diagnostic settings for Redis Cache to stream to a Log Analytics workspace when any Redis Cache which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[274:275) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + RelayLogAnalyticsEffect: { +//@[10:33) Identifier |RelayLogAnalyticsEffect| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Relay to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:92) StringComplete |'Deploy Diagnostic Settings for Relay to Log Analytics workspace'| +//@[92:93) NewLine |\n| + description: 'Deploys the diagnostic settings for Relay to stream to a Log Analytics workspace when any Relay which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:262) StringComplete |'Deploys the diagnostic settings for Relay to stream to a Log Analytics workspace when any Relay which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[262:263) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + SearchServicesLogAnalyticsEffect: { +//@[10:42) Identifier |SearchServicesLogAnalyticsEffect| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Search Services to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:102) StringComplete |'Deploy Diagnostic Settings for Search Services to Log Analytics workspace'| +//@[102:103) NewLine |\n| + description: 'Deploys the diagnostic settings for Search Services to stream to a Log Analytics workspace when any Search Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:282) StringComplete |'Deploys the diagnostic settings for Search Services to stream to a Log Analytics workspace when any Search Services which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[282:283) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + ServiceBusLogAnalyticsEffect: { +//@[10:38) Identifier |ServiceBusLogAnalyticsEffect| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Service Bus namespaces to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:110) StringComplete |'Deploy Diagnostic Settings for Service Bus namespaces to Log Analytics workspace'| +//@[110:111) NewLine |\n| + description: 'Deploys the diagnostic settings for ServiceBus to stream to a Log Analytics workspace when any ServiceBus which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:272) StringComplete |'Deploys the diagnostic settings for ServiceBus to stream to a Log Analytics workspace when any ServiceBus which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[272:273) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + SignalRLogAnalyticsEffect: { +//@[10:35) Identifier |SignalRLogAnalyticsEffect| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for SignalR to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:94) StringComplete |'Deploy Diagnostic Settings for SignalR to Log Analytics workspace'| +//@[94:95) NewLine |\n| + description: 'Deploys the diagnostic settings for SignalR to stream to a Log Analytics workspace when any SignalR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:266) StringComplete |'Deploys the diagnostic settings for SignalR to stream to a Log Analytics workspace when any SignalR which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[266:267) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + SQLDBsLogAnalyticsEffect: { +//@[10:34) Identifier |SQLDBsLogAnalyticsEffect| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for SQL Databases to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:101) StringComplete |'Deploy Diagnostic Settings for SQL Databases to Log Analytics workspace'| +//@[101:102) NewLine |\n| + description: 'Deploys the diagnostic settings for SQL Databases to stream to a Log Analytics workspace when any SQL Databases which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:279) StringComplete |'Deploys the diagnostic settings for SQL Databases to stream to a Log Analytics workspace when any SQL Databases which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[279:280) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + SQLElasticPoolsLogAnalyticsEffect: { +//@[10:43) Identifier |SQLElasticPoolsLogAnalyticsEffect| +//@[43:44) Colon |:| +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for SQL Elastic Pools to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:104) StringComplete |'Deploy Diagnostic Settings for SQL Elastic Pools to Log Analytics workspace'| +//@[104:105) NewLine |\n| + description: 'Deploys the diagnostic settings for SQL Elastic Pools to stream to a Log Analytics workspace when any SQL Elastic Pools which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:286) StringComplete |'Deploys the diagnostic settings for SQL Elastic Pools to stream to a Log Analytics workspace when any SQL Elastic Pools which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[286:287) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + SQLMLogAnalyticsEffect: { +//@[10:32) Identifier |SQLMLogAnalyticsEffect| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for SQL Managed Instances to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Deploy Diagnostic Settings for SQL Managed Instances to Log Analytics workspace'| +//@[108:109) NewLine |\n| + description: 'Deploys the diagnostic settings for SQL Managed Instances to stream to a Log Analytics workspace when any SQL Managed Instances which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:294) StringComplete |'Deploys the diagnostic settings for SQL Managed Instances to stream to a Log Analytics workspace when any SQL Managed Instances which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[294:295) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + StreamAnalyticsLogAnalyticsEffect: { +//@[10:43) Identifier |StreamAnalyticsLogAnalyticsEffect| +//@[43:44) Colon |:| +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Stream Analytics to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:103) StringComplete |'Deploy Diagnostic Settings for Stream Analytics to Log Analytics workspace'| +//@[103:104) NewLine |\n| + description: 'Deploys the diagnostic settings for Stream Analytics to stream to a Log Analytics workspace when any Stream Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:284) StringComplete |'Deploys the diagnostic settings for Stream Analytics to stream to a Log Analytics workspace when any Stream Analytics which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[284:285) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + TimeSeriesInsightsLogAnalyticsEffect: { +//@[10:46) Identifier |TimeSeriesInsightsLogAnalyticsEffect| +//@[46:47) Colon |:| +//@[48:49) LeftBrace |{| +//@[49:50) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Time Series Insights to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:107) StringComplete |'Deploy Diagnostic Settings for Time Series Insights to Log Analytics workspace'| +//@[107:108) NewLine |\n| + description: 'Deploys the diagnostic settings for Time Series Insights to stream to a Log Analytics workspace when any Time Series Insights which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:292) StringComplete |'Deploys the diagnostic settings for Time Series Insights to stream to a Log Analytics workspace when any Time Series Insights which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[292:293) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + TrafficManagerLogAnalyticsEffect: { +//@[10:42) Identifier |TrafficManagerLogAnalyticsEffect| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Traffic Manager to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:102) StringComplete |'Deploy Diagnostic Settings for Traffic Manager to Log Analytics workspace'| +//@[102:103) NewLine |\n| + description: 'Deploys the diagnostic settings for Traffic Manager to stream to a Log Analytics workspace when any Traffic Manager which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:282) StringComplete |'Deploys the diagnostic settings for Traffic Manager to stream to a Log Analytics workspace when any Traffic Manager which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[282:283) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + VirtualNetworkLogAnalyticsEffect: { +//@[10:42) Identifier |VirtualNetworkLogAnalyticsEffect| +//@[42:43) Colon |:| +//@[44:45) LeftBrace |{| +//@[45:46) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Virtual Network to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:102) StringComplete |'Deploy Diagnostic Settings for Virtual Network to Log Analytics workspace'| +//@[102:103) NewLine |\n| + description: 'Deploys the diagnostic settings for Virtual Network to stream to a Log Analytics workspace when any Virtual Network which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:282) StringComplete |'Deploys the diagnostic settings for Virtual Network to stream to a Log Analytics workspace when any Virtual Network which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[282:283) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + VirtualMachinesLogAnalyticsEffect: { +//@[10:43) Identifier |VirtualMachinesLogAnalyticsEffect| +//@[43:44) Colon |:| +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Virtual Machines to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:103) StringComplete |'Deploy Diagnostic Settings for Virtual Machines to Log Analytics workspace'| +//@[103:104) NewLine |\n| + description: 'Deploys the diagnostic settings for Virtual Machines to stream to a Log Analytics workspace when any Virtual Machines which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:284) StringComplete |'Deploys the diagnostic settings for Virtual Machines to stream to a Log Analytics workspace when any Virtual Machines which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[284:285) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + VMSSLogAnalyticsEffect: { +//@[10:32) Identifier |VMSSLogAnalyticsEffect| +//@[32:33) Colon |:| +//@[34:35) LeftBrace |{| +//@[35:36) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for Virtual Machine Scale Sets to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:113) StringComplete |'Deploy Diagnostic Settings for Virtual Machine Scale Sets to Log Analytics workspace'| +//@[113:114) NewLine |\n| + description: 'Deploys the diagnostic settings for Virtual Machine Scale Sets to stream to a Log Analytics workspace when any Virtual Machine Scale Sets which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:306) StringComplete |'Deploys the diagnostic settings for Virtual Machine Scale Sets to stream to a Log Analytics workspace when any Virtual Machine Scale Sets which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[306:307) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + VNetGWLogAnalyticsEffect: { +//@[10:34) Identifier |VNetGWLogAnalyticsEffect| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for VPN Gateway to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:98) StringComplete |'Deploy Diagnostic Settings for VPN Gateway to Log Analytics workspace'| +//@[98:99) NewLine |\n| + description: 'Deploys the diagnostic settings for VPN Gateway to stream to a Log Analytics workspace when any VPN Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:275) StringComplete |'Deploys the diagnostic settings for VPN Gateway to stream to a Log Analytics workspace when any VPN Gateway which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled.'| +//@[275:276) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + AppServiceLogAnalyticsEffect: { +//@[10:38) Identifier |AppServiceLogAnalyticsEffect| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for App Service Plan to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:103) StringComplete |'Deploy Diagnostic Settings for App Service Plan to Log Analytics workspace'| +//@[103:104) NewLine |\n| + description: 'Deploys the diagnostic settings for App Service Plan to stream to a Log Analytics workspace when any App Service Plan which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:284) StringComplete |'Deploys the diagnostic settings for App Service Plan to stream to a Log Analytics workspace when any App Service Plan which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[284:285) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + AppServiceWebappLogAnalyticsEffect: { +//@[10:44) Identifier |AppServiceWebappLogAnalyticsEffect| +//@[44:45) Colon |:| +//@[46:47) LeftBrace |{| +//@[47:48) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy Diagnostic Settings for App Service to Log Analytics workspace' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:98) StringComplete |'Deploy Diagnostic Settings for App Service to Log Analytics workspace'| +//@[98:99) NewLine |\n| + description: 'Deploys the diagnostic settings for Web App to stream to a Log Analytics workspace when any Web App which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:266) StringComplete |'Deploys the diagnostic settings for Web App to stream to a Log Analytics workspace when any Web App which is missing this diagnostic settings is created or updated. The policy wil set the diagnostic with all metrics and category enabled'| +//@[266:267) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyDefinitionGroups: null +//@[8:30) Identifier |PolicyDefinitionGroups| +//@[30:31) Colon |:| +//@[32:36) NullKeyword |null| +//@[36:37) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Monitoring' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:32) StringComplete |'Monitoring'| +//@[32:33) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyDefinitions: [ +//@[8:25) Identifier |PolicyDefinitions| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ACI' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:117) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ACI'| +//@[117:118) NewLine |\n| + policyDefinitionReferenceId: 'ACIDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:83) StringComplete |'ACIDeployDiagnosticLogDeployLogAnalytics'| +//@[83:84) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'ACILogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:64) StringComplete |'[parameters(\'ACILogAnalyticsEffect\')]'| +//@[64:65) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ACR' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:117) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ACR'| +//@[117:118) NewLine |\n| + policyDefinitionReferenceId: 'ACRDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:83) StringComplete |'ACRDeployDiagnosticLogDeployLogAnalytics'| +//@[83:84) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'ACRLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:64) StringComplete |'[parameters(\'ACRLogAnalyticsEffect\')]'| +//@[64:65) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AKS' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:117) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AKS'| +//@[117:118) NewLine |\n| + policyDefinitionReferenceId: 'AKSDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:83) StringComplete |'AKSDeployDiagnosticLogDeployLogAnalytics'| +//@[83:84) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'AKSLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:64) StringComplete |'[parameters(\'AKSLogAnalyticsEffect\')]'| +//@[64:65) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AnalysisService' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:129) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AnalysisService'| +//@[129:130) NewLine |\n| + policyDefinitionReferenceId: 'AnalysisServiceDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:95) StringComplete |'AnalysisServiceDeployDiagnosticLogDeployLogAnalytics'| +//@[95:96) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'AnalysisServiceLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:76) StringComplete |'[parameters(\'AnalysisServiceLogAnalyticsEffect\')]'| +//@[76:77) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-APIMgmt' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:121) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-APIMgmt'| +//@[121:122) NewLine |\n| + policyDefinitionReferenceId: 'APIMgmtDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:87) StringComplete |'APIMgmtDeployDiagnosticLogDeployLogAnalytics'| +//@[87:88) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'APIMgmtLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:68) StringComplete |'[parameters(\'APIMgmtLogAnalyticsEffect\')]'| +//@[68:69) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ApplicationGateway' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:132) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ApplicationGateway'| +//@[132:133) NewLine |\n| + policyDefinitionReferenceId: 'ApplicationGatewayDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:98) StringComplete |'ApplicationGatewayDeployDiagnosticLogDeployLogAnalytics'| +//@[98:99) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'ApplicationGatewayLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:79) StringComplete |'[parameters(\'ApplicationGatewayLogAnalyticsEffect\')]'| +//@[79:80) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AA' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:116) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-AA'| +//@[116:117) NewLine |\n| + policyDefinitionReferenceId: 'AutomationDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:90) StringComplete |'AutomationDeployDiagnosticLogDeployLogAnalytics'| +//@[90:91) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'AutomationLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:71) StringComplete |'[parameters(\'AutomationLogAnalyticsEffect\')]'| +//@[71:72) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Batch' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:119) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Batch'| +//@[119:120) NewLine |\n| + policyDefinitionReferenceId: 'BatchDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:85) StringComplete |'BatchDeployDiagnosticLogDeployLogAnalytics'| +//@[85:86) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'BatchLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:66) StringComplete |'[parameters(\'BatchLogAnalyticsEffect\')]'| +//@[66:67) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CDNEndpoints' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:126) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CDNEndpoints'| +//@[126:127) NewLine |\n| + policyDefinitionReferenceId: 'CDNEndpointsDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:92) StringComplete |'CDNEndpointsDeployDiagnosticLogDeployLogAnalytics'| +//@[92:93) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'CDNEndpointsLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:73) StringComplete |'[parameters(\'CDNEndpointsLogAnalyticsEffect\')]'| +//@[73:74) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CognitiveServices' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:131) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CognitiveServices'| +//@[131:132) NewLine |\n| + policyDefinitionReferenceId: 'CognitiveServicesDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:97) StringComplete |'CognitiveServicesDeployDiagnosticLogDeployLogAnalytics'| +//@[97:98) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'CognitiveServicesLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:78) StringComplete |'[parameters(\'CognitiveServicesLogAnalyticsEffect\')]'| +//@[78:79) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CosmosDB' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:122) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-CosmosDB'| +//@[122:123) NewLine |\n| + policyDefinitionReferenceId: 'CosmosDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:86) StringComplete |'CosmosDeployDiagnosticLogDeployLogAnalytics'| +//@[86:87) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'CosmosLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:67) StringComplete |'[parameters(\'CosmosLogAnalyticsEffect\')]'| +//@[67:68) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Databricks' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:124) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Databricks'| +//@[124:125) NewLine |\n| + policyDefinitionReferenceId: 'DatabricksDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:90) StringComplete |'DatabricksDeployDiagnosticLogDeployLogAnalytics'| +//@[90:91) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'DatabricksLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:71) StringComplete |'[parameters(\'DatabricksLogAnalyticsEffect\')]'| +//@[71:72) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DataFactory' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:125) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DataFactory'| +//@[125:126) NewLine |\n| + policyDefinitionReferenceId: 'DataFactoryDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:91) StringComplete |'DataFactoryDeployDiagnosticLogDeployLogAnalytics'| +//@[91:92) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'DataFactoryLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:72) StringComplete |'[parameters(\'DataFactoryLogAnalyticsEffect\')]'| +//@[72:73) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DataLakeStore' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:127) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DataLakeStore'| +//@[127:128) NewLine |\n| + policyDefinitionReferenceId: 'DataLakeStoreDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:93) StringComplete |'DataLakeStoreDeployDiagnosticLogDeployLogAnalytics'| +//@[93:94) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'DataLakeStoreLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:74) StringComplete |'[parameters(\'DataLakeStoreLogAnalyticsEffect\')]'| +//@[74:75) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DLAnalytics' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:125) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-DLAnalytics'| +//@[125:126) NewLine |\n| + policyDefinitionReferenceId: 'DataLakeAnalyticsDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:97) StringComplete |'DataLakeAnalyticsDeployDiagnosticLogDeployLogAnalytics'| +//@[97:98) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'DataLakeAnalyticsLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:78) StringComplete |'[parameters(\'DataLakeAnalyticsLogAnalyticsEffect\')]'| +//@[78:79) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridSub' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:126) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridSub'| +//@[126:127) NewLine |\n| + policyDefinitionReferenceId: 'EventGridSubDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:92) StringComplete |'EventGridSubDeployDiagnosticLogDeployLogAnalytics'| +//@[92:93) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'EventGridSubLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:73) StringComplete |'[parameters(\'EventGridSubLogAnalyticsEffect\')]'| +//@[73:74) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridTopic' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:128) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridTopic'| +//@[128:129) NewLine |\n| + policyDefinitionReferenceId: 'EventGridTopicDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:94) StringComplete |'EventGridTopicDeployDiagnosticLogDeployLogAnalytics'| +//@[94:95) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'EventGridTopicLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:75) StringComplete |'[parameters(\'EventGridTopicLogAnalyticsEffect\')]'| +//@[75:76) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventHub' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:122) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventHub'| +//@[122:123) NewLine |\n| + policyDefinitionReferenceId: 'EventHubDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:88) StringComplete |'EventHubDeployDiagnosticLogDeployLogAnalytics'| +//@[88:89) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'EventHubLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:69) StringComplete |'[parameters(\'EventHubLogAnalyticsEffect\')]'| +//@[69:70) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridSystemTopic' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:134) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-EventGridSystemTopic'| +//@[134:135) NewLine |\n| + policyDefinitionReferenceId: 'EventSystemTopicDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:96) StringComplete |'EventSystemTopicDeployDiagnosticLogDeployLogAnalytics'| +//@[96:97) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'EventSystemTopicLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:77) StringComplete |'[parameters(\'EventSystemTopicLogAnalyticsEffect\')]'| +//@[77:78) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ExpressRoute' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:126) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ExpressRoute'| +//@[126:127) NewLine |\n| + policyDefinitionReferenceId: 'ExpressRouteDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:92) StringComplete |'ExpressRouteDeployDiagnosticLogDeployLogAnalytics'| +//@[92:93) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'ExpressRouteLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:73) StringComplete |'[parameters(\'ExpressRouteLogAnalyticsEffect\')]'| +//@[73:74) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Firewall' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:122) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Firewall'| +//@[122:123) NewLine |\n| + policyDefinitionReferenceId: 'FirewallDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:88) StringComplete |'FirewallDeployDiagnosticLogDeployLogAnalytics'| +//@[88:89) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'FirewallLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:69) StringComplete |'[parameters(\'FirewallLogAnalyticsEffect\')]'| +//@[69:70) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-FrontDoor' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:123) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-FrontDoor'| +//@[123:124) NewLine |\n| + policyDefinitionReferenceId: 'FrontDoorDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:89) StringComplete |'FrontDoorDeployDiagnosticLogDeployLogAnalytics'| +//@[89:90) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'FrontDoorLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:70) StringComplete |'[parameters(\'FrontDoorLogAnalyticsEffect\')]'| +//@[70:71) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Function' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:122) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Function'| +//@[122:123) NewLine |\n| + policyDefinitionReferenceId: 'FunctionAppDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:91) StringComplete |'FunctionAppDeployDiagnosticLogDeployLogAnalytics'| +//@[91:92) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'FunctionAppLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:72) StringComplete |'[parameters(\'FunctionAppLogAnalyticsEffect\')]'| +//@[72:73) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-HDInsight' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:123) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-HDInsight'| +//@[123:124) NewLine |\n| + policyDefinitionReferenceId: 'HDInsightDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:89) StringComplete |'HDInsightDeployDiagnosticLogDeployLogAnalytics'| +//@[89:90) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'HDInsightLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:70) StringComplete |'[parameters(\'HDInsightLogAnalyticsEffect\')]'| +//@[70:71) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-iotHub' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:120) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-iotHub'| +//@[120:121) NewLine |\n| + policyDefinitionReferenceId: 'IotHubDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:86) StringComplete |'IotHubDeployDiagnosticLogDeployLogAnalytics'| +//@[86:87) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'IotHubLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:67) StringComplete |'[parameters(\'IotHubLogAnalyticsEffect\')]'| +//@[67:68) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-KeyVault' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:122) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-KeyVault'| +//@[122:123) NewLine |\n| + policyDefinitionReferenceId: 'KeyVaultDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:88) StringComplete |'KeyVaultDeployDiagnosticLogDeployLogAnalytics'| +//@[88:89) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'KeyVaultLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:69) StringComplete |'[parameters(\'KeyVaultLogAnalyticsEffect\')]'| +//@[69:70) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LoadBalancer' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:126) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LoadBalancer'| +//@[126:127) NewLine |\n| + policyDefinitionReferenceId: 'LoadBalancerDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:92) StringComplete |'LoadBalancerDeployDiagnosticLogDeployLogAnalytics'| +//@[92:93) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'LoadBalancerLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:73) StringComplete |'[parameters(\'LoadBalancerLogAnalyticsEffect\')]'| +//@[73:74) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LogicAppsISE' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:126) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LogicAppsISE'| +//@[126:127) NewLine |\n| + policyDefinitionReferenceId: 'LogicAppsISEDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:92) StringComplete |'LogicAppsISEDeployDiagnosticLogDeployLogAnalytics'| +//@[92:93) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'LogicAppsISELogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:73) StringComplete |'[parameters(\'LogicAppsISELogAnalyticsEffect\')]'| +//@[73:74) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LogicAppsWF' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:125) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-LogicAppsWF'| +//@[125:126) NewLine |\n| + policyDefinitionReferenceId: 'LogicAppsWFDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:91) StringComplete |'LogicAppsWFDeployDiagnosticLogDeployLogAnalytics'| +//@[91:92) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'LogicAppsWFLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:72) StringComplete |'[parameters(\'LogicAppsWFLogAnalyticsEffect\')]'| +//@[72:73) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MariaDB' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:121) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MariaDB'| +//@[121:122) NewLine |\n| + policyDefinitionReferenceId: 'MariaDBDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:87) StringComplete |'MariaDBDeployDiagnosticLogDeployLogAnalytics'| +//@[87:88) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'MariaDBLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:68) StringComplete |'[parameters(\'MariaDBLogAnalyticsEffect\')]'| +//@[68:69) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MlWorkspace' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:125) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MlWorkspace'| +//@[125:126) NewLine |\n| + policyDefinitionReferenceId: 'MlWorkspaceDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:91) StringComplete |'MlWorkspaceDeployDiagnosticLogDeployLogAnalytics'| +//@[91:92) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'MlWorkspaceLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:72) StringComplete |'[parameters(\'MlWorkspaceLogAnalyticsEffect\')]'| +//@[72:73) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MySQL' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:119) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-MySQL'| +//@[119:120) NewLine |\n| + policyDefinitionReferenceId: 'MySQLDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:85) StringComplete |'MySQLDeployDiagnosticLogDeployLogAnalytics'| +//@[85:86) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'MySQLLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:66) StringComplete |'[parameters(\'MySQLLogAnalyticsEffect\')]'| +//@[66:67) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-NetworkSecurityGroups' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:135) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-NetworkSecurityGroups'| +//@[135:136) NewLine |\n| + policyDefinitionReferenceId: 'NetworkSecurityGroupsDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:101) StringComplete |'NetworkSecurityGroupsDeployDiagnosticLogDeployLogAnalytics'| +//@[101:102) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'NetworkSecurityGroupsLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:82) StringComplete |'[parameters(\'NetworkSecurityGroupsLogAnalyticsEffect\')]'| +//@[82:83) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-NIC' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:117) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-NIC'| +//@[117:118) NewLine |\n| + policyDefinitionReferenceId: 'NetworkNICDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:90) StringComplete |'NetworkNICDeployDiagnosticLogDeployLogAnalytics'| +//@[90:91) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'NetworkNICLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:71) StringComplete |'[parameters(\'NetworkNICLogAnalyticsEffect\')]'| +//@[71:72) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PostgreSQL' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:124) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PostgreSQL'| +//@[124:125) NewLine |\n| + policyDefinitionReferenceId: 'PostgreSQLDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:90) StringComplete |'PostgreSQLDeployDiagnosticLogDeployLogAnalytics'| +//@[90:91) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'PostgreSQLLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:71) StringComplete |'[parameters(\'PostgreSQLLogAnalyticsEffect\')]'| +//@[71:72) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PowerBIEmbedded' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:129) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PowerBIEmbedded'| +//@[129:130) NewLine |\n| + policyDefinitionReferenceId: 'PowerBIEmbeddedDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:95) StringComplete |'PowerBIEmbeddedDeployDiagnosticLogDeployLogAnalytics'| +//@[95:96) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'PowerBIEmbeddedLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:76) StringComplete |'[parameters(\'PowerBIEmbeddedLogAnalyticsEffect\')]'| +//@[76:77) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PublicIP' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:122) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-PublicIP'| +//@[122:123) NewLine |\n| + policyDefinitionReferenceId: 'NetworkPublicIPNicDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:98) StringComplete |'NetworkPublicIPNicDeployDiagnosticLogDeployLogAnalytics'| +//@[98:99) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'NetworkPublicIPNicLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:79) StringComplete |'[parameters(\'NetworkPublicIPNicLogAnalyticsEffect\')]'| +//@[79:80) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-RecoveryVault' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:127) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-RecoveryVault'| +//@[127:128) NewLine |\n| + policyDefinitionReferenceId: 'RecoveryVaultDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:93) StringComplete |'RecoveryVaultDeployDiagnosticLogDeployLogAnalytics'| +//@[93:94) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'RecoveryVaultLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:74) StringComplete |'[parameters(\'RecoveryVaultLogAnalyticsEffect\')]'| +//@[74:75) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-RedisCache' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:124) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-RedisCache'| +//@[124:125) NewLine |\n| + policyDefinitionReferenceId: 'RedisCacheDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:90) StringComplete |'RedisCacheDeployDiagnosticLogDeployLogAnalytics'| +//@[90:91) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'RedisCacheLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:71) StringComplete |'[parameters(\'RedisCacheLogAnalyticsEffect\')]'| +//@[71:72) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Relay' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:119) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Relay'| +//@[119:120) NewLine |\n| + policyDefinitionReferenceId: 'RelayDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:85) StringComplete |'RelayDeployDiagnosticLogDeployLogAnalytics'| +//@[85:86) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'RelayLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:66) StringComplete |'[parameters(\'RelayLogAnalyticsEffect\')]'| +//@[66:67) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SearchServices' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:128) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SearchServices'| +//@[128:129) NewLine |\n| + policyDefinitionReferenceId: 'SearchServicesDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:94) StringComplete |'SearchServicesDeployDiagnosticLogDeployLogAnalytics'| +//@[94:95) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'SearchServicesLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:75) StringComplete |'[parameters(\'SearchServicesLogAnalyticsEffect\')]'| +//@[75:76) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ServiceBus' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:124) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-ServiceBus'| +//@[124:125) NewLine |\n| + policyDefinitionReferenceId: 'ServiceBusDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:90) StringComplete |'ServiceBusDeployDiagnosticLogDeployLogAnalytics'| +//@[90:91) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'ServiceBusLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:71) StringComplete |'[parameters(\'ServiceBusLogAnalyticsEffect\')]'| +//@[71:72) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SignalR' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:121) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SignalR'| +//@[121:122) NewLine |\n| + policyDefinitionReferenceId: 'SignalRDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:87) StringComplete |'SignalRDeployDiagnosticLogDeployLogAnalytics'| +//@[87:88) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'SignalRLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:68) StringComplete |'[parameters(\'SignalRLogAnalyticsEffect\')]'| +//@[68:69) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLDBs' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:120) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLDBs'| +//@[120:121) NewLine |\n| + policyDefinitionReferenceId: 'SQLDBsDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:86) StringComplete |'SQLDBsDeployDiagnosticLogDeployLogAnalytics'| +//@[86:87) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'SQLDBsLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:67) StringComplete |'[parameters(\'SQLDBsLogAnalyticsEffect\')]'| +//@[67:68) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLElasticPools' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:129) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLElasticPools'| +//@[129:130) NewLine |\n| + policyDefinitionReferenceId: 'SQLElasticPoolsDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:95) StringComplete |'SQLElasticPoolsDeployDiagnosticLogDeployLogAnalytics'| +//@[95:96) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'SQLElasticPoolsLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:76) StringComplete |'[parameters(\'SQLElasticPoolsLogAnalyticsEffect\')]'| +//@[76:77) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLMI' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:119) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-SQLMI'| +//@[119:120) NewLine |\n| + policyDefinitionReferenceId: 'SQLMDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:84) StringComplete |'SQLMDeployDiagnosticLogDeployLogAnalytics'| +//@[84:85) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'SQLMLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:65) StringComplete |'[parameters(\'SQLMLogAnalyticsEffect\')]'| +//@[65:66) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-StreamAnalytics' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:129) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-StreamAnalytics'| +//@[129:130) NewLine |\n| + policyDefinitionReferenceId: 'StreamAnalyticsDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:95) StringComplete |'StreamAnalyticsDeployDiagnosticLogDeployLogAnalytics'| +//@[95:96) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'StreamAnalyticsLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:76) StringComplete |'[parameters(\'StreamAnalyticsLogAnalyticsEffect\')]'| +//@[76:77) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-TimeSeriesInsights' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:132) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-TimeSeriesInsights'| +//@[132:133) NewLine |\n| + policyDefinitionReferenceId: 'TimeSeriesInsightsDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:98) StringComplete |'TimeSeriesInsightsDeployDiagnosticLogDeployLogAnalytics'| +//@[98:99) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'TimeSeriesInsightsLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:79) StringComplete |'[parameters(\'TimeSeriesInsightsLogAnalyticsEffect\')]'| +//@[79:80) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-TrafficManager' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:128) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-TrafficManager'| +//@[128:129) NewLine |\n| + policyDefinitionReferenceId: 'TrafficManagerDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:94) StringComplete |'TrafficManagerDeployDiagnosticLogDeployLogAnalytics'| +//@[94:95) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'TrafficManagerLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:75) StringComplete |'[parameters(\'TrafficManagerLogAnalyticsEffect\')]'| +//@[75:76) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VirtualNetwork' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:128) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VirtualNetwork'| +//@[128:129) NewLine |\n| + policyDefinitionReferenceId: 'VirtualNetworkDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:94) StringComplete |'VirtualNetworkDeployDiagnosticLogDeployLogAnalytics'| +//@[94:95) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'VirtualNetworkLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:75) StringComplete |'[parameters(\'VirtualNetworkLogAnalyticsEffect\')]'| +//@[75:76) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VM' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:116) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VM'| +//@[116:117) NewLine |\n| + policyDefinitionReferenceId: 'VirtualMachinesDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:95) StringComplete |'VirtualMachinesDeployDiagnosticLogDeployLogAnalytics'| +//@[95:96) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'VirtualMachinesLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:76) StringComplete |'[parameters(\'VirtualMachinesLogAnalyticsEffect\')]'| +//@[76:77) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VMSS' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:118) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VMSS'| +//@[118:119) NewLine |\n| + policyDefinitionReferenceId: 'VMSSDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:84) StringComplete |'VMSSDeployDiagnosticLogDeployLogAnalytics'| +//@[84:85) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'VMSSLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:65) StringComplete |'[parameters(\'VMSSLogAnalyticsEffect\')]'| +//@[65:66) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VNetGW' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:120) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VNetGW'| +//@[120:121) NewLine |\n| + policyDefinitionReferenceId: 'VNetGWDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:86) StringComplete |'VNetGWDeployDiagnosticLogDeployLogAnalytics'| +//@[86:87) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'VNetGWLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:67) StringComplete |'[parameters(\'VNetGWLogAnalyticsEffect\')]'| +//@[67:68) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-WebServerFarm' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:127) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-WebServerFarm'| +//@[127:128) NewLine |\n| + policyDefinitionReferenceId: 'AppServiceDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:90) StringComplete |'AppServiceDeployDiagnosticLogDeployLogAnalytics'| +//@[90:91) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'AppServiceLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:71) StringComplete |'[parameters(\'AppServiceLogAnalyticsEffect\')]'| +//@[71:72) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Website' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:121) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-Website'| +//@[121:122) NewLine |\n| + policyDefinitionReferenceId: 'AppServiceWebappDeployDiagnosticLogDeployLogAnalytics' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:96) StringComplete |'AppServiceWebappDeployDiagnosticLogDeployLogAnalytics'| +//@[96:97) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + logAnalytics: { +//@[14:26) Identifier |logAnalytics| +//@[26:27) Colon |:| +//@[28:29) LeftBrace |{| +//@[29:30) NewLine |\n| + value: '[parameters(\'logAnalytics\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:55) StringComplete |'[parameters(\'logAnalytics\')]'| +//@[55:56) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'AppServiceWebappLogAnalyticsEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:77) StringComplete |'[parameters(\'AppServiceWebappLogAnalyticsEffect\')]'| +//@[77:78) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + profileName: { +//@[14:25) Identifier |profileName| +//@[25:26) Colon |:| +//@[27:28) LeftBrace |{| +//@[28:29) NewLine |\n| + value: '[parameters(\'profileName\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:54) StringComplete |'[parameters(\'profileName\')]'| +//@[54:55) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + ] +//@[8:9) RightSquare |]| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + type: null +//@[6:10) Identifier |type| +//@[10:11) Colon |:| +//@[12:16) NullKeyword |null| +//@[16:17) NewLine |\n| + name: 'Deploy-Diag-LogAnalytics' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:38) StringComplete |'Deploy-Diag-LogAnalytics'| +//@[38:39) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'This policy denies creation of Azure PAAS services with exposed public endpoints. This policy set includes the policy for the following services KeyVault, Storage accounts, AKS, Cosmos, SQL Servers, MariaDB, MySQL and Postgress. ' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:253) StringComplete |'This policy denies creation of Azure PAAS services with exposed public endpoints. This policy set includes the policy for the following services KeyVault, Storage accounts, AKS, Cosmos, SQL Servers, MariaDB, MySQL and Postgress. '| +//@[253:254) NewLine |\n| + DisplayName: 'Public network access should be disabled for PAAS services' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:81) StringComplete |'Public network access should be disabled for PAAS services'| +//@[81:82) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + CosmosPublicIpDenyEffect: { +//@[10:34) Identifier |CosmosPublicIpDenyEffect| +//@[34:35) Colon |:| +//@[36:37) LeftBrace |{| +//@[37:38) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'Deny' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Public network access should be disabled for CosmosDB' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Public network access should be disabled for CosmosDB'| +//@[82:83) NewLine |\n| + description: 'This policy denies that Cosmos database accounts are created with out public network access is disabled.' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:135) StringComplete |'This policy denies that Cosmos database accounts are created with out public network access is disabled.'| +//@[135:136) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + MariaDBPublicIpDenyEffect: { +//@[10:35) Identifier |MariaDBPublicIpDenyEffect| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'Deny' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Public network access should be disabled for MariaDB' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:81) StringComplete |'Public network access should be disabled for MariaDB'| +//@[81:82) NewLine |\n| + description: 'This policy denies the creation of Maria DB accounts with exposed public endpoints' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:111) StringComplete |'This policy denies the creation of Maria DB accounts with exposed public endpoints'| +//@[111:112) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + MySQLPublicIpDenyEffect: { +//@[10:33) Identifier |MySQLPublicIpDenyEffect| +//@[33:34) Colon |:| +//@[35:36) LeftBrace |{| +//@[36:37) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'Deny' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Public network access should be disabled for MySQL' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:79) StringComplete |'Public network access should be disabled for MySQL'| +//@[79:80) NewLine |\n| + description: 'This policy denies creation of MySql DB accounts with exposed public endpoints' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:107) StringComplete |'This policy denies creation of MySql DB accounts with exposed public endpoints'| +//@[107:108) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + PostgreSQLPublicIpDenyEffect: { +//@[10:38) Identifier |PostgreSQLPublicIpDenyEffect| +//@[38:39) Colon |:| +//@[40:41) LeftBrace |{| +//@[41:42) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'Deny' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Public network access should be disabled for PostgreSql' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:84) StringComplete |'Public network access should be disabled for PostgreSql'| +//@[84:85) NewLine |\n| + description: 'This policy denies creation of Postgre SQL DB accounts with exposed public endpoints' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:113) StringComplete |'This policy denies creation of Postgre SQL DB accounts with exposed public endpoints'| +//@[113:114) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + KeyVaultPublicIpDenyEffect: { +//@[10:36) Identifier |KeyVaultPublicIpDenyEffect| +//@[36:37) Colon |:| +//@[38:39) LeftBrace |{| +//@[39:40) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'Deny' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Public network access should be disabled for KeyVault' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:82) StringComplete |'Public network access should be disabled for KeyVault'| +//@[82:83) NewLine |\n| + description: 'This policy denies creation of Key Vaults with IP Firewall exposed to all public endpoints' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:119) StringComplete |'This policy denies creation of Key Vaults with IP Firewall exposed to all public endpoints'| +//@[119:120) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + SqlServerPublicIpDenyEffect: { +//@[10:37) Identifier |SqlServerPublicIpDenyEffect| +//@[37:38) Colon |:| +//@[39:40) LeftBrace |{| +//@[40:41) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'Deny' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Public network access on Azure SQL Database should be disabled' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:91) StringComplete |'Public network access on Azure SQL Database should be disabled'| +//@[91:92) NewLine |\n| + description: 'This policy denies creation of Sql servers with exposed public endpoints' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:101) StringComplete |'This policy denies creation of Sql servers with exposed public endpoints'| +//@[101:102) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + StoragePublicIpDenyEffect: { +//@[10:35) Identifier |StoragePublicIpDenyEffect| +//@[35:36) Colon |:| +//@[37:38) LeftBrace |{| +//@[38:39) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'Deny' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Public network access onStorage accounts should be disabled' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:88) StringComplete |'Public network access onStorage accounts should be disabled'| +//@[88:89) NewLine |\n| + description: 'This policy denies creation of storage accounts with IP Firewall exposed to all public endpoints' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:125) StringComplete |'This policy denies creation of storage accounts with IP Firewall exposed to all public endpoints'| +//@[125:126) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + AKSPublicIpDenyEffect: { +//@[10:31) Identifier |AKSPublicIpDenyEffect| +//@[31:32) Colon |:| +//@[33:34) LeftBrace |{| +//@[34:35) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'Deny' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:32) StringComplete |'Deny'| +//@[32:33) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'Audit' +//@[14:21) StringComplete |'Audit'| +//@[21:22) NewLine |\n| + 'Deny' +//@[14:20) StringComplete |'Deny'| +//@[20:21) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Public network access on AKS API should be disabled' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:80) StringComplete |'Public network access on AKS API should be disabled'| +//@[80:81) NewLine |\n| + description: 'This policy denies the creation of Azure Kubernetes Service non-private clusters' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:111) StringComplete |'This policy denies the creation of Azure Kubernetes Service non-private clusters'| +//@[111:112) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyDefinitionGroups: null +//@[8:30) Identifier |PolicyDefinitionGroups| +//@[30:31) Colon |:| +//@[32:36) NullKeyword |null| +//@[36:37) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'Network' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:29) StringComplete |'Network'| +//@[29:30) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyDefinitions: [ +//@[8:25) Identifier |PolicyDefinitions| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-CosmosDB' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:123) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-CosmosDB'| +//@[123:124) NewLine |\n| + policyDefinitionReferenceId: 'CosmosDenyPaasPublicIP' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:65) StringComplete |'CosmosDenyPaasPublicIP'| +//@[65:66) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'CosmosPublicIpDenyEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:67) StringComplete |'[parameters(\'CosmosPublicIpDenyEffect\')]'| +//@[67:68) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-MariaDB' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:122) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-MariaDB'| +//@[122:123) NewLine |\n| + policyDefinitionReferenceId: 'MariaDBDenyPaasPublicIP' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:66) StringComplete |'MariaDBDenyPaasPublicIP'| +//@[66:67) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'MariaDBPublicIpDenyEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:68) StringComplete |'[parameters(\'MariaDBPublicIpDenyEffect\')]'| +//@[68:69) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-MySQL' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:120) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-MySQL'| +//@[120:121) NewLine |\n| + policyDefinitionReferenceId: 'MySQLDenyPaasPublicIP' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:64) StringComplete |'MySQLDenyPaasPublicIP'| +//@[64:65) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'MySQLPublicIpDenyEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:66) StringComplete |'[parameters(\'MySQLPublicIpDenyEffect\')]'| +//@[66:67) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-PostgreSql' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:125) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-PostgreSql'| +//@[125:126) NewLine |\n| + policyDefinitionReferenceId: 'PostgreSQLDenyPaasPublicIP' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:69) StringComplete |'PostgreSQLDenyPaasPublicIP'| +//@[69:70) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'PostgreSQLPublicIpDenyEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:71) StringComplete |'[parameters(\'PostgreSQLPublicIpDenyEffect\')]'| +//@[71:72) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-KeyVault' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:123) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-KeyVault'| +//@[123:124) NewLine |\n| + policyDefinitionReferenceId: 'KeyVaultDenyPaasPublicIP' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:67) StringComplete |'KeyVaultDenyPaasPublicIP'| +//@[67:68) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'KeyVaultPublicIpDenyEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:69) StringComplete |'[parameters(\'KeyVaultPublicIpDenyEffect\')]'| +//@[69:70) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Sql' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:118) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Sql'| +//@[118:119) NewLine |\n| + policyDefinitionReferenceId: 'SqlServerDenyPaasPublicIP' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:68) StringComplete |'SqlServerDenyPaasPublicIP'| +//@[68:69) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'SqlServerPublicIpDenyEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:70) StringComplete |'[parameters(\'SqlServerPublicIpDenyEffect\')]'| +//@[70:71) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Storage' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:122) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Storage'| +//@[122:123) NewLine |\n| + policyDefinitionReferenceId: 'StorageDenyPaasPublicIP' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:66) StringComplete |'StorageDenyPaasPublicIP'| +//@[66:67) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'StoragePublicIpDenyEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:68) StringComplete |'[parameters(\'StoragePublicIpDenyEffect\')]'| +//@[68:69) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Aks' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:118) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deny-PublicEndpoint-Aks'| +//@[118:119) NewLine |\n| + policyDefinitionReferenceId: 'AKSDenyPaasPublicIP' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:62) StringComplete |'AKSDenyPaasPublicIP'| +//@[62:63) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'AKSPublicIpDenyEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:64) StringComplete |'[parameters(\'AKSPublicIpDenyEffect\')]'| +//@[64:65) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + ] +//@[8:9) RightSquare |]| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + type: null +//@[6:10) Identifier |type| +//@[10:11) Colon |:| +//@[12:16) NullKeyword |null| +//@[16:17) NewLine |\n| + name: 'Deny-PublicEndpoints' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:34) StringComplete |'Deny-PublicEndpoints'| +//@[34:35) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + { +//@[4:5) LeftBrace |{| +//@[5:6) NewLine |\n| + properties: { +//@[6:16) Identifier |properties| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + Description: 'Deploy auditing, Alert, TDE and SQL vulnerability to SQL Databases when it not exist in the deployment' +//@[8:19) Identifier |Description| +//@[19:20) Colon |:| +//@[21:125) StringComplete |'Deploy auditing, Alert, TDE and SQL vulnerability to SQL Databases when it not exist in the deployment'| +//@[125:126) NewLine |\n| + DisplayName: 'Deploy SQL Database built-in SQL security configuration' +//@[8:19) Identifier |DisplayName| +//@[19:20) Colon |:| +//@[21:78) StringComplete |'Deploy SQL Database built-in SQL security configuration'| +//@[78:79) NewLine |\n| + Parameters: { +//@[8:18) Identifier |Parameters| +//@[18:19) Colon |:| +//@[20:21) LeftBrace |{| +//@[21:22) NewLine |\n| + vulnerabilityAssessmentsEmail: { +//@[10:39) Identifier |vulnerabilityAssessmentsEmail| +//@[39:40) Colon |:| +//@[41:42) LeftBrace |{| +//@[42:43) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + description: 'The email address to send alerts' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:61) StringComplete |'The email address to send alerts'| +//@[61:62) NewLine |\n| + displayName: 'The email address to send alerts' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:61) StringComplete |'The email address to send alerts'| +//@[61:62) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + vulnerabilityAssessmentsStorageID: { +//@[10:43) Identifier |vulnerabilityAssessmentsStorageID| +//@[43:44) Colon |:| +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + description: 'The storage account ID to store assessments' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:72) StringComplete |'The storage account ID to store assessments'| +//@[72:73) NewLine |\n| + displayName: 'The storage account ID to store assessments' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:72) StringComplete |'The storage account ID to store assessments'| +//@[72:73) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + type: 'String' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'String'| +//@[26:27) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + SqlDbTdeDeploySqlSecurityEffect: { +//@[10:41) Identifier |SqlDbTdeDeploySqlSecurityEffect| +//@[41:42) Colon |:| +//@[43:44) LeftBrace |{| +//@[44:45) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy SQL Database Transparent Data Encryption ' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:77) StringComplete |'Deploy SQL Database Transparent Data Encryption '| +//@[77:78) NewLine |\n| + description: 'Deploy the Transparent Data Encryption when it is not enabled in the deployment' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:108) StringComplete |'Deploy the Transparent Data Encryption when it is not enabled in the deployment'| +//@[108:109) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + SqlDbSecurityAlertPoliciesDeploySqlSecurityEffect: { +//@[10:59) Identifier |SqlDbSecurityAlertPoliciesDeploySqlSecurityEffect| +//@[59:60) Colon |:| +//@[61:62) LeftBrace |{| +//@[62:63) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy SQL Database security Alert Policies configuration with email admin accounts' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:112) StringComplete |'Deploy SQL Database security Alert Policies configuration with email admin accounts'| +//@[112:113) NewLine |\n| + description: 'Deploy the security Alert Policies configuration with email admin accounts when it not exist in current configuration' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:146) StringComplete |'Deploy the security Alert Policies configuration with email admin accounts when it not exist in current configuration'| +//@[146:147) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + SqlDbAuditingSettingsDeploySqlSecurityEffect: { +//@[10:54) Identifier |SqlDbAuditingSettingsDeploySqlSecurityEffect| +//@[54:55) Colon |:| +//@[56:57) LeftBrace |{| +//@[57:58) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy SQL database auditing settings' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:66) StringComplete |'Deploy SQL database auditing settings'| +//@[66:67) NewLine |\n| + description: 'Deploy auditing settings to SQL Database when it not exist in the deployment' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:105) StringComplete |'Deploy auditing settings to SQL Database when it not exist in the deployment'| +//@[105:106) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + SqlDbVulnerabilityAssessmentsDeploySqlSecurityEffect: { +//@[10:62) Identifier |SqlDbVulnerabilityAssessmentsDeploySqlSecurityEffect| +//@[62:63) Colon |:| +//@[64:65) LeftBrace |{| +//@[65:66) NewLine |\n| + type: 'string' +//@[12:16) Identifier |type| +//@[16:17) Colon |:| +//@[18:26) StringComplete |'string'| +//@[26:27) NewLine |\n| + defaultValue: 'DeployIfNotExists' +//@[12:24) Identifier |defaultValue| +//@[24:25) Colon |:| +//@[26:45) StringComplete |'DeployIfNotExists'| +//@[45:46) NewLine |\n| + allowedValues: [ +//@[12:25) Identifier |allowedValues| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + 'DeployIfNotExists' +//@[14:33) StringComplete |'DeployIfNotExists'| +//@[33:34) NewLine |\n| + 'Disabled' +//@[14:24) StringComplete |'Disabled'| +//@[24:25) NewLine |\n| + ] +//@[12:13) RightSquare |]| +//@[13:14) NewLine |\n| + metadata: { +//@[12:20) Identifier |metadata| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + displayName: 'Deploy SQL Database vulnerability Assessments' +//@[14:25) Identifier |displayName| +//@[25:26) Colon |:| +//@[27:74) StringComplete |'Deploy SQL Database vulnerability Assessments'| +//@[74:75) NewLine |\n| + description: 'Deploy SQL Database vulnerability Assessments when it not exist in the deployment. To the specific storage account in the parameters' +//@[14:25) Identifier |description| +//@[25:26) Colon |:| +//@[27:162) StringComplete |'Deploy SQL Database vulnerability Assessments when it not exist in the deployment. To the specific storage account in the parameters'| +//@[162:163) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyDefinitionGroups: null +//@[8:30) Identifier |PolicyDefinitionGroups| +//@[30:31) Colon |:| +//@[32:36) NullKeyword |null| +//@[36:37) NewLine |\n| + metadata: { +//@[8:16) Identifier |metadata| +//@[16:17) Colon |:| +//@[18:19) LeftBrace |{| +//@[19:20) NewLine |\n| + version: '1.0.0' +//@[10:17) Identifier |version| +//@[17:18) Colon |:| +//@[19:26) StringComplete |'1.0.0'| +//@[26:27) NewLine |\n| + category: 'SQL' +//@[10:18) Identifier |category| +//@[18:19) Colon |:| +//@[20:25) StringComplete |'SQL'| +//@[25:26) NewLine |\n| + } +//@[8:9) RightBrace |}| +//@[9:10) NewLine |\n| + PolicyDefinitions: [ +//@[8:25) Identifier |PolicyDefinitions| +//@[25:26) Colon |:| +//@[27:28) LeftSquare |[| +//@[28:29) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-Tde' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:109) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-Tde'| +//@[109:110) NewLine |\n| + policyDefinitionReferenceId: 'SqlDbTdeDeploySqlSecurity' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:68) StringComplete |'SqlDbTdeDeploySqlSecurity'| +//@[68:69) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'SqlDbTdeDeploySqlSecurityEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:74) StringComplete |'[parameters(\'SqlDbTdeDeploySqlSecurityEffect\')]'| +//@[74:75) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-SecurityAlertPolicies' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:127) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-SecurityAlertPolicies'| +//@[127:128) NewLine |\n| + policyDefinitionReferenceId: 'SqlDbSecurityAlertPoliciesDeploySqlSecurity' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:86) StringComplete |'SqlDbSecurityAlertPoliciesDeploySqlSecurity'| +//@[86:87) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'SqlDbSecurityAlertPoliciesDeploySqlSecurityEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:92) StringComplete |'[parameters(\'SqlDbSecurityAlertPoliciesDeploySqlSecurityEffect\')]'| +//@[92:93) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-AuditingSettings' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:122) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-AuditingSettings'| +//@[122:123) NewLine |\n| + policyDefinitionReferenceId: 'SqlDbAuditingSettingsDeploySqlSecurity' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:81) StringComplete |'SqlDbAuditingSettingsDeploySqlSecurity'| +//@[81:82) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'SqlDbAuditingSettingsDeploySqlSecurityEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:87) StringComplete |'[parameters(\'SqlDbAuditingSettingsDeploySqlSecurityEffect\')]'| +//@[87:88) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + { +//@[10:11) LeftBrace |{| +//@[11:12) NewLine |\n| + policyDefinitionId: '${scope}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-vulnerabilityAssessments' +//@[12:30) Identifier |policyDefinitionId| +//@[30:31) Colon |:| +//@[32:35) StringLeftPiece |'${| +//@[35:40) Identifier |scope| +//@[40:130) StringRightPiece |}/providers/Microsoft.Authorization/policyDefinitions/Deploy-Sql-vulnerabilityAssessments'| +//@[130:131) NewLine |\n| + policyDefinitionReferenceId: 'SqlDbVulnerabilityAssessmentsDeploySqlSecurity' +//@[12:39) Identifier |policyDefinitionReferenceId| +//@[39:40) Colon |:| +//@[41:89) StringComplete |'SqlDbVulnerabilityAssessmentsDeploySqlSecurity'| +//@[89:90) NewLine |\n| + parameters: { +//@[12:22) Identifier |parameters| +//@[22:23) Colon |:| +//@[24:25) LeftBrace |{| +//@[25:26) NewLine |\n| + effect: { +//@[14:20) Identifier |effect| +//@[20:21) Colon |:| +//@[22:23) LeftBrace |{| +//@[23:24) NewLine |\n| + value: '[parameters(\'SqlDbVulnerabilityAssessmentsDeploySqlSecurityEffect\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:95) StringComplete |'[parameters(\'SqlDbVulnerabilityAssessmentsDeploySqlSecurityEffect\')]'| +//@[95:96) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + vulnerabilityAssessmentsEmail: { +//@[14:43) Identifier |vulnerabilityAssessmentsEmail| +//@[43:44) Colon |:| +//@[45:46) LeftBrace |{| +//@[46:47) NewLine |\n| + value: '[parameters(\'vulnerabilityAssessmentsEmail\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:72) StringComplete |'[parameters(\'vulnerabilityAssessmentsEmail\')]'| +//@[72:73) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + vulnerabilityAssessmentsStorageID: { +//@[14:47) Identifier |vulnerabilityAssessmentsStorageID| +//@[47:48) Colon |:| +//@[49:50) LeftBrace |{| +//@[50:51) NewLine |\n| + value: '[parameters(\'vulnerabilityAssessmentsStorageID\')]' +//@[16:21) Identifier |value| +//@[21:22) Colon |:| +//@[23:76) StringComplete |'[parameters(\'vulnerabilityAssessmentsStorageID\')]'| +//@[76:77) NewLine |\n| + } +//@[14:15) RightBrace |}| +//@[15:16) NewLine |\n| + } +//@[12:13) RightBrace |}| +//@[13:14) NewLine |\n| + } +//@[10:11) RightBrace |}| +//@[11:12) NewLine |\n| + ] +//@[8:9) RightSquare |]| +//@[9:10) NewLine |\n| + } +//@[6:7) RightBrace |}| +//@[7:8) NewLine |\n| + type: null +//@[6:10) Identifier |type| +//@[10:11) Colon |:| +//@[12:16) NullKeyword |null| +//@[16:17) NewLine |\n| + name: 'Deploy-Sql-Security' +//@[6:10) Identifier |name| +//@[10:11) Colon |:| +//@[12:33) StringComplete |'Deploy-Sql-Security'| +//@[33:34) NewLine |\n| + } +//@[4:5) RightBrace |}| +//@[5:6) NewLine |\n| + ] +//@[2:3) RightSquare |]| +//@[3:4) NewLine |\n| +} +//@[0:1) RightBrace |}| +//@[1:3) NewLine |\n\n| + +resource policies_policyDefinitions_0_name 'Microsoft.Authorization/policyDefinitions@2019-09-01' = { +//@[0:8) Identifier |resource| +//@[9:42) Identifier |policies_policyDefinitions_0_name| +//@[43:97) StringComplete |'Microsoft.Authorization/policyDefinitions@2019-09-01'| +//@[98:99) Assignment |=| +//@[100:101) LeftBrace |{| +//@[101:102) NewLine |\n| + name: policies.policyDefinitions[0].name +//@[2:6) Identifier |name| +//@[6:7) Colon |:| +//@[8:16) Identifier |policies| +//@[16:17) Dot |.| +//@[17:34) Identifier |policyDefinitions| +//@[34:35) LeftSquare |[| +//@[35:36) Integer |0| +//@[36:37) RightSquare |]| +//@[37:38) Dot |.| +//@[38:42) Identifier |name| +//@[42:43) NewLine |\n| + properties: { +//@[2:12) Identifier |properties| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + displayName: policies.policyDefinitions[0].properties.displayName +//@[4:15) Identifier |displayName| +//@[15:16) Colon |:| +//@[17:25) Identifier |policies| +//@[25:26) Dot |.| +//@[26:43) Identifier |policyDefinitions| +//@[43:44) LeftSquare |[| +//@[44:45) Integer |0| +//@[45:46) RightSquare |]| +//@[46:47) Dot |.| +//@[47:57) Identifier |properties| +//@[57:58) Dot |.| +//@[58:69) Identifier |displayName| +//@[69:70) NewLine |\n| + description: policies.policyDefinitions[0].properties.description +//@[4:15) Identifier |description| +//@[15:16) Colon |:| +//@[17:25) Identifier |policies| +//@[25:26) Dot |.| +//@[26:43) Identifier |policyDefinitions| +//@[43:44) LeftSquare |[| +//@[44:45) Integer |0| +//@[45:46) RightSquare |]| +//@[46:47) Dot |.| +//@[47:57) Identifier |properties| +//@[57:58) Dot |.| +//@[58:69) Identifier |description| +//@[69:70) NewLine |\n| + mode: 'All' +//@[4:8) Identifier |mode| +//@[8:9) Colon |:| +//@[10:15) StringComplete |'All'| +//@[15:16) NewLine |\n| + policyType: 'Custom' +//@[4:14) Identifier |policyType| +//@[14:15) Colon |:| +//@[16:24) StringComplete |'Custom'| +//@[24:25) NewLine |\n| + parameters: policies.policyDefinitions[0].properties.parameters +//@[4:14) Identifier |parameters| +//@[14:15) Colon |:| +//@[16:24) Identifier |policies| +//@[24:25) Dot |.| +//@[25:42) Identifier |policyDefinitions| +//@[42:43) LeftSquare |[| +//@[43:44) Integer |0| +//@[44:45) RightSquare |]| +//@[45:46) Dot |.| +//@[46:56) Identifier |properties| +//@[56:57) Dot |.| +//@[57:67) Identifier |parameters| +//@[67:68) NewLine |\n| + policyRule: policies.policyDefinitions[0].properties.policyRule +//@[4:14) Identifier |policyRule| +//@[14:15) Colon |:| +//@[16:24) Identifier |policies| +//@[24:25) Dot |.| +//@[25:42) Identifier |policyDefinitions| +//@[42:43) LeftSquare |[| +//@[43:44) Integer |0| +//@[44:45) RightSquare |]| +//@[45:46) Dot |.| +//@[46:56) Identifier |properties| +//@[56:57) Dot |.| +//@[57:67) Identifier |policyRule| +//@[67:68) NewLine |\n| + metadata: policies.policyDefinitions[0].properties.metadata +//@[4:12) Identifier |metadata| +//@[12:13) Colon |:| +//@[14:22) Identifier |policies| +//@[22:23) Dot |.| +//@[23:40) Identifier |policyDefinitions| +//@[40:41) LeftSquare |[| +//@[41:42) Integer |0| +//@[42:43) RightSquare |]| +//@[43:44) Dot |.| +//@[44:54) Identifier |properties| +//@[54:55) Dot |.| +//@[55:63) Identifier |metadata| +//@[63:64) NewLine |\n| + } +//@[2:3) RightBrace |}| +//@[3:4) NewLine |\n| +} +//@[0:1) RightBrace |}| +//@[1:3) NewLine |\n\n| + +resource initiatives_policySetDefinitions_0_name 'Microsoft.Authorization/policySetDefinitions@2019-09-01' = { +//@[0:8) Identifier |resource| +//@[9:48) Identifier |initiatives_policySetDefinitions_0_name| +//@[49:106) StringComplete |'Microsoft.Authorization/policySetDefinitions@2019-09-01'| +//@[107:108) Assignment |=| +//@[109:110) LeftBrace |{| +//@[110:111) NewLine |\n| + name: initiatives.policySetDefinitions[0].name +//@[2:6) Identifier |name| +//@[6:7) Colon |:| +//@[8:19) Identifier |initiatives| +//@[19:20) Dot |.| +//@[20:40) Identifier |policySetDefinitions| +//@[40:41) LeftSquare |[| +//@[41:42) Integer |0| +//@[42:43) RightSquare |]| +//@[43:44) Dot |.| +//@[44:48) Identifier |name| +//@[48:49) NewLine |\n| + properties: { +//@[2:12) Identifier |properties| +//@[12:13) Colon |:| +//@[14:15) LeftBrace |{| +//@[15:16) NewLine |\n| + displayName: initiatives.policySetDefinitions[0].properties.displayName +//@[4:15) Identifier |displayName| +//@[15:16) Colon |:| +//@[17:28) Identifier |initiatives| +//@[28:29) Dot |.| +//@[29:49) Identifier |policySetDefinitions| +//@[49:50) LeftSquare |[| +//@[50:51) Integer |0| +//@[51:52) RightSquare |]| +//@[52:53) Dot |.| +//@[53:63) Identifier |properties| +//@[63:64) Dot |.| +//@[64:75) Identifier |displayName| +//@[75:76) NewLine |\n| + description: initiatives.policySetDefinitions[0].properties.description +//@[4:15) Identifier |description| +//@[15:16) Colon |:| +//@[17:28) Identifier |initiatives| +//@[28:29) Dot |.| +//@[29:49) Identifier |policySetDefinitions| +//@[49:50) LeftSquare |[| +//@[50:51) Integer |0| +//@[51:52) RightSquare |]| +//@[52:53) Dot |.| +//@[53:63) Identifier |properties| +//@[63:64) Dot |.| +//@[64:75) Identifier |description| +//@[75:76) NewLine |\n| + parameters: initiatives.policySetDefinitions[0].properties.parameters +//@[4:14) Identifier |parameters| +//@[14:15) Colon |:| +//@[16:27) Identifier |initiatives| +//@[27:28) Dot |.| +//@[28:48) Identifier |policySetDefinitions| +//@[48:49) LeftSquare |[| +//@[49:50) Integer |0| +//@[50:51) RightSquare |]| +//@[51:52) Dot |.| +//@[52:62) Identifier |properties| +//@[62:63) Dot |.| +//@[63:73) Identifier |parameters| +//@[73:74) NewLine |\n| + policyDefinitions: initiatives.policySetDefinitions[0].properties.policyDefinitions +//@[4:21) Identifier |policyDefinitions| +//@[21:22) Colon |:| +//@[23:34) Identifier |initiatives| +//@[34:35) Dot |.| +//@[35:55) Identifier |policySetDefinitions| +//@[55:56) LeftSquare |[| +//@[56:57) Integer |0| +//@[57:58) RightSquare |]| +//@[58:59) Dot |.| +//@[59:69) Identifier |properties| +//@[69:70) Dot |.| +//@[70:87) Identifier |policyDefinitions| +//@[87:88) NewLine |\n| + metadata: initiatives.policySetDefinitions[0].properties.metadata +//@[4:12) Identifier |metadata| +//@[12:13) Colon |:| +//@[14:25) Identifier |initiatives| +//@[25:26) Dot |.| +//@[26:46) Identifier |policySetDefinitions| +//@[46:47) LeftSquare |[| +//@[47:48) Integer |0| +//@[48:49) RightSquare |]| +//@[49:50) Dot |.| +//@[50:60) Identifier |properties| +//@[60:61) Dot |.| +//@[61:69) Identifier |metadata| +//@[69:70) NewLine |\n| + } +//@[2:3) RightBrace |}| +//@[3:4) NewLine |\n| +} +//@[0:1) RightBrace |}| +//@[1:1) EndOfFile || diff --git a/src/Bicep.Core/PrettyPrint/DocumentBuildVisitor.cs b/src/Bicep.Core/PrettyPrint/DocumentBuildVisitor.cs index 800c26853fc..252df8e91c2 100644 --- a/src/Bicep.Core/PrettyPrint/DocumentBuildVisitor.cs +++ b/src/Bicep.Core/PrettyPrint/DocumentBuildVisitor.cs @@ -2,14 +2,13 @@ // Licensed under the MIT License. using System; using System.Collections.Generic; +using System.Collections.Immutable; using System.Diagnostics; using System.Linq; using Bicep.Core.Extensions; using Bicep.Core.Parsing; using Bicep.Core.PrettyPrint.Documents; -using Bicep.Core.PrettyPrint.DocumentCombinators; using Bicep.Core.Syntax; -using System.Collections.Immutable; namespace Bicep.Core.PrettyPrint { @@ -17,22 +16,22 @@ public class DocumentBuildVisitor : SyntaxVisitor { private static readonly ILinkedDocument Nil = new NilDocument(); - private static readonly ILinkedDocument Space = new TextDocument(" ", Nil); + private static readonly ILinkedDocument Space = new TextDocument(" "); - private static readonly ILinkedDocument Line = new NestDocument(0, Nil); + private static readonly ILinkedDocument Line = new NestDocument(0); private static readonly ILinkedDocument NoLine = new NilDocument(); - private static readonly ILinkedDocument SingleLine = new NestDocument(0, Nil); + private static readonly ILinkedDocument SingleLine = new NestDocument(0); - private static readonly ILinkedDocument DoubleLine = new NestDocument(0, Line); + private static readonly ILinkedDocument DoubleLine = new NestDocument(0).Concat(Line); private static readonly ImmutableDictionary CommonTextCache = LanguageConstants.ContextualKeywords .Concat(LanguageConstants.Keywords.Keys) .Concat(new[] { "(", ")", "[", "]", "{", "}", "=", ":", "+", "-", "*", "/", "!" }) .Concat(new[] { "name", "properties", "string", "bool", "int", "array", "object" }) - .ToImmutableDictionary(value => value, value => new TextDocument(value, Nil)); + .ToImmutableDictionary(value => value, value => new TextDocument(value)); private readonly Stack documentStack = new Stack(); @@ -324,7 +323,7 @@ public override void VisitArraySyntax(ArraySyntax syntax) => }); private static ILinkedDocument Text(string text) => - CommonTextCache.TryGetValue(text, out var cached) ? cached : new TextDocument(text, Nil); + CommonTextCache.TryGetValue(text, out var cached) ? cached : new TextDocument(text); private static ILinkedDocument Concat(params ILinkedDocument[] combinators) => Concat(combinators as IEnumerable); @@ -348,7 +347,7 @@ private void BuildBlock(Action visitAction) => Debug.Assert(children.Length >= 2); ILinkedDocument openSymbol = children[0]; - ILinkedDocument body = Concat(children.Skip(1).SkipLast(2)).Nest(1); + ILinkedDocument body = Concat(children.Skip(1).SkipLast(2)).Nest(); ILinkedDocument lastLine = children.Length > 2 ? children[^2] : Nil; ILinkedDocument closeSymbol = children[^1]; @@ -371,7 +370,7 @@ private void BuildStatement(SyntaxBase syntax, Action visitAction) { var splitIndex = Array.IndexOf(children, Nil); - // Need to concat leading decorators and newlines with the statment keyword. + // Need to concat leading decorators and the statment keyword. var head = Concat(children.Take(splitIndex)); var tail = children.Skip(splitIndex + 1); diff --git a/src/Bicep.Core/PrettyPrint/Documents/ILinkedDocument.cs b/src/Bicep.Core/PrettyPrint/Documents/ILinkedDocument.cs index 621358b353d..aa65215adf1 100644 --- a/src/Bicep.Core/PrettyPrint/Documents/ILinkedDocument.cs +++ b/src/Bicep.Core/PrettyPrint/Documents/ILinkedDocument.cs @@ -8,7 +8,7 @@ public interface ILinkedDocument { ILinkedDocument Concat(ILinkedDocument other); - ILinkedDocument Nest(int level); + ILinkedDocument Nest(); void Layout(StringBuilder sb, string indent, string newline); } diff --git a/src/Bicep.Core/PrettyPrint/Documents/NestDocument.cs b/src/Bicep.Core/PrettyPrint/Documents/NestDocument.cs index 7f4bba7a5a0..db3f76706b3 100644 --- a/src/Bicep.Core/PrettyPrint/Documents/NestDocument.cs +++ b/src/Bicep.Core/PrettyPrint/Documents/NestDocument.cs @@ -1,45 +1,60 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. +using System.Collections.Immutable; +using System.Linq; +using System.Runtime.CompilerServices; using System.Text; -using Bicep.Core.PrettyPrint.Documents; -namespace Bicep.Core.PrettyPrint.DocumentCombinators +namespace Bicep.Core.PrettyPrint.Documents { public class NestDocument : ILinkedDocument { - public NestDocument(int level, ILinkedDocument successor) + private readonly int level; + + private readonly ImmutableArray successors; + + public NestDocument(int level) + : this(level, ImmutableArray.Empty) { - this.Level = level; - this.Successor = successor; } - public int Level { get; } - - public ILinkedDocument Successor { get; } + public NestDocument(int level, ImmutableArray successors) + { + this.level = level; + this.successors = successors; + } public ILinkedDocument Concat(ILinkedDocument other) { - return new NestDocument(this.Level, this.Successor.Concat(other)); + return new NestDocument(this.level, this.successors.Add(other)); } - public ILinkedDocument Nest(int level) + public ILinkedDocument Nest() { - return new NestDocument(level + this.Level, this.Successor.Nest(level)); + RuntimeHelpers.EnsureSufficientExecutionStack(); + + return new NestDocument(this.level + 1, this.successors.Select(s => s.Nest()).ToImmutableArray()); } public void Layout(StringBuilder sb, string indent, string newline) { + RuntimeHelpers.EnsureSufficientExecutionStack(); + sb.Append(newline); - if (!(this.Successor is NestDocument)) + // Avoid putting whitespaces between newlines. + if (this.successors.FirstOrDefault() is not NestDocument) { - for (int i = 0; i < this.Level; i++) + for (int i = 0; i < this.level; i++) { sb.Append(indent); } } - - this.Successor.Layout(sb, indent, newline); + + foreach (var successor in this.successors) + { + successor.Layout(sb, indent, newline); + } } } } diff --git a/src/Bicep.Core/PrettyPrint/Documents/NilDocument.cs b/src/Bicep.Core/PrettyPrint/Documents/NilDocument.cs index 77d18f003be..6084e2c78f3 100644 --- a/src/Bicep.Core/PrettyPrint/Documents/NilDocument.cs +++ b/src/Bicep.Core/PrettyPrint/Documents/NilDocument.cs @@ -1,9 +1,8 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. using System.Text; -using Bicep.Core.PrettyPrint.Documents; -namespace Bicep.Core.PrettyPrint.DocumentCombinators +namespace Bicep.Core.PrettyPrint.Documents { public sealed class NilDocument : ILinkedDocument { @@ -12,7 +11,7 @@ public ILinkedDocument Concat(ILinkedDocument other) return other; } - public ILinkedDocument Nest(int level) + public ILinkedDocument Nest() { return this; } diff --git a/src/Bicep.Core/PrettyPrint/Documents/TextDocument.cs b/src/Bicep.Core/PrettyPrint/Documents/TextDocument.cs index ff57f73f74a..e94b9328109 100644 --- a/src/Bicep.Core/PrettyPrint/Documents/TextDocument.cs +++ b/src/Bicep.Core/PrettyPrint/Documents/TextDocument.cs @@ -1,5 +1,8 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. +using System.Collections.Immutable; +using System.Linq; +using System.Runtime.CompilerServices; using System.Text; using Bicep.Core.Parsing; @@ -7,33 +10,44 @@ namespace Bicep.Core.PrettyPrint.Documents { public class TextDocument : ILinkedDocument { - public TextDocument(string text, ILinkedDocument successor) + private readonly string text; + + private readonly ImmutableArray successors; + + public TextDocument(string text) + : this(text, ImmutableArray.Empty) { - Text = text; - Successor = successor; } - public string Text { get; } - - public ILinkedDocument Successor { get; } + public TextDocument(string text, ImmutableArray successors) + { + this.text = text; + this.successors = successors; + } public ILinkedDocument Concat(ILinkedDocument other) { - return new TextDocument(this.Text, Successor.Concat(other)); + return new TextDocument(this.text, this.successors.Add(other)); } - public ILinkedDocument Nest(int level) + public ILinkedDocument Nest() { - return new TextDocument(this.Text, Successor.Nest(level)); + RuntimeHelpers.EnsureSufficientExecutionStack(); + + return new TextDocument(this.text, successors.Select(s => s.Nest()).ToImmutableArray()); } - public void Layout(StringBuilder builder, string indent, string newline) + public void Layout(StringBuilder sb, string indent, string newline) { + RuntimeHelpers.EnsureSufficientExecutionStack(); + // Normalize newlines. - var text = StringUtils.ReplaceNewlines(this.Text, newline); + sb.Append(StringUtils.ReplaceNewlines(this.text, newline)); - builder.Append(text); - Successor.Layout(builder, indent, newline); + foreach (var successor in this.successors) + { + successor.Layout(sb, indent, newline); + } } } } diff --git a/src/Bicep.LangServer/Handlers/BicepDocumentFormattingHandler.cs b/src/Bicep.LangServer/Handlers/BicepDocumentFormattingHandler.cs index aa4db976710..5ca0efbd3c9 100644 --- a/src/Bicep.LangServer/Handlers/BicepDocumentFormattingHandler.cs +++ b/src/Bicep.LangServer/Handlers/BicepDocumentFormattingHandler.cs @@ -40,10 +40,9 @@ public BicepDocumentFormattingHandler(ILogger logger long indentSize = request.Options.TabSize; IndentKindOption indentKindOption = request.Options.InsertSpaces ? IndentKindOption.Space : IndentKindOption.Tab; - bool insertFinalNewline = request.Options.ContainsKey("insertFinalNewline") && request.Options.InsertFinalNewline; ProgramSyntax programSyntax = context.ProgramSyntax; - PrettyPrintOptions options = new PrettyPrintOptions(NewlineOption.Auto, indentKindOption, indentSize, insertFinalNewline); + PrettyPrintOptions options = new PrettyPrintOptions(NewlineOption.Auto, indentKindOption, indentSize, request.Options.InsertFinalNewline); string? output = PrettyPrinter.PrintProgram(programSyntax, options); diff --git a/src/vscode-bicep/package.json b/src/vscode-bicep/package.json index 1c9bd33e82e..2ea87a089ad 100644 --- a/src/vscode-bicep/package.json +++ b/src/vscode-bicep/package.json @@ -44,6 +44,7 @@ "[bicep]": { "editor.tabSize": 2, "editor.insertSpaces": true, + "files.insertFinalNewline": true, "editor.suggestSelection": "first", "editor.suggest.snippetsPreventQuickSuggestions": false, "editor.suggest.showWords": false diff --git a/src/vscode-bicep/src/language/client.ts b/src/vscode-bicep/src/language/client.ts index c552aa9614f..97b884f7169 100644 --- a/src/vscode-bicep/src/language/client.ts +++ b/src/vscode-bicep/src/language/client.ts @@ -55,6 +55,20 @@ async function launchLanguageService( documentSelector: [{ language: "bicep" }], progressOnInitialization: true, outputChannel, + middleware: { + provideDocumentFormattingEdits: (document, options, token, next) => + next( + document, + { + ...options, + insertFinalNewline: + vscode.workspace + .getConfiguration("files") + .get("insertFinalNewline") ?? false, + }, + token + ), + }, synchronize: { // These file watcher globs should be kept in-sync with those defined in BicepDidChangeWatchedFilesHander.cs fileEvents: [