# Azure What-If Built-in Noise Patterns
# ─────────────────────────────────────────────────────────────────────────────
# These patterns handle known Azure What-If false positives in two phases:
#
# 1. Resource patterns (pre-LLM): Remove entire matching resource blocks from
#    raw What-If text BEFORE it is sent to the LLM. Also applied post-LLM as
#    a fallback to demote any surviving matches to low confidence.
# 2. Property patterns (pre-LLM): Strip noisy property lines from raw What-If
#    text BEFORE it is sent to the LLM for analysis.
#
# Pattern types:
#   Plain text           — case-insensitive substring: keyword anywhere in line (pre-LLM)
#   regex: <pattern>     — Python re.search(), case-insensitive (pre-LLM)
#   fuzzy: <pattern>     — legacy fuzzy similarity (SequenceMatcher) (pre-LLM)
#   resource: <type>     — remove block pre-LLM; also demote post-LLM fallback
#   resource: <type>:Op  — remove/demote only when operation matches (Modify, Create, etc.)
#
# Plain-text, regex, and fuzzy patterns only apply to property-change lines
# (indented 4+ spaces with a ~ / + / - change symbol).
#
# Resource patterns match the ARM resource type in What-If block headers (pre-LLM)
# and the resource_type field from the LLM response (post-LLM fallback).
# Type matching is case-insensitive substring.
#
# To disable these built-ins: --no-builtin-patterns
# To add your own patterns:   --noise-file ./my-patterns.txt
# ─────────────────────────────────────────────────────────────────────────────

# ── Metadata & computed properties (virtually all resource types) ─────────────
etag
provisioningState
resourceGuid
creationTime
lastModifiedTime

# ── Azure diagnostics noise ───────────────────────────────────────────────────
logAnalyticsDestinationType

# ── IPv6 platform noise (VNets, subnets, NICs) ───────────────────────────────
# These IPv6 properties are almost always spurious in What-If output.
ipv6AddressSpace
disableIpv6
enableIPv6Addressing
enableIPv6

# ── Hidden / Azure-managed tags ──────────────────────────────────────────────
hidden-link:
hidden-title
hidden-related:

# ── Load balancer computed fields ─────────────────────────────────────────────
# inboundNatRules is regenerated by ARM on each evaluation; rarely a real change
inboundNatRules

# ── Network interface computed fields ─────────────────────────────────────────
effectiveRouteTable
effectiveNetworkSecurityGroup
appliedDnsServers
