source/Private/AzureResourceConstants.ps1

# Azure Resource Deployment Constants

# Required Azure PowerShell modules (lazy-loaded, version-pinned)
New-Variable -Name "RequiredAzModules" -Value ([ordered]@{
    "Az.Accounts"   = "5.5.2"
    "Az.Resources"  = "10.1.0"
    "Az.Automation" = "1.12.1"
}) -Scope "Script" -Option ReadOnly

# Default DCR deployment flags
New-Variable -Name "DefaultDeployAuditLogsDCR" -Value $true -Scope "Script" -Option ReadOnly
New-Variable -Name "DefaultDeployRunbookLogsDCR" -Value $true -Scope "Script" -Option ReadOnly
New-Variable -Name "DefaultDeployOperationalLogsDCR" -Value $true -Scope "Script" -Option ReadOnly

# Service principal replication wait defaults
New-Variable -Name "ReplicationMaxAttempts" -Value 4 -Scope "Script" -Option ReadOnly
New-Variable -Name "ReplicationBaseDelaySeconds" -Value 8 -Scope "Script" -Option ReadOnly

# Polling interval (seconds) for live ARM deployment progress reporting
New-Variable -Name "ArmDeploymentPollIntervalSeconds" -Value 5 -Scope "Script" -Option ReadOnly

# RBAC role definition IDs (passed as parameters to Bicep templates at deploy time)
New-Variable -Name "LogAnalyticsReaderRoleId" -Value "73c42c96-874c-492b-b04d-ab87d138a893" -Scope "Script" -Option ReadOnly
New-Variable -Name "MonitoringMetricsPublisherRoleId" -Value "3913510d-42f4-4e42-8a64-420c390055eb" -Scope "Script" -Option ReadOnly
New-Variable -Name "ContributorRoleId" -Value "b24988ac-6180-42a0-ab88-20f7382dd24c" -Scope "Script" -Option ReadOnly