content/src/schemas/arm-pricing-map.json

{
    "$schema": "https://json-schema.org/draft-07/schema#",
    "$comment": "Maps ARM resource types to Azure Retail Prices API service/product names. Used by Axeon cost estimation.",
    "resources": {
        "Microsoft.Network/virtualNetworks": {
            "serviceName": "Virtual Network",
            "defaultFree": true,
            "notes": "VNets themselves are free; peering and gateways are paid separately."
        },
        "Microsoft.Network/virtualNetworks/subnets": {
            "serviceName": "Virtual Network",
            "defaultFree": true,
            "notes": "Subnets are free sub-resources of VNets."
        },
        "Microsoft.Network/networkSecurityGroups": {
            "serviceName": "Virtual Network",
            "defaultFree": true,
            "notes": "NSGs are free."
        },
        "Microsoft.Network/routeTables": {
            "serviceName": "Virtual Network",
            "defaultFree": true,
            "notes": "Route tables (UDRs) are free."
        },
        "Microsoft.Network/publicIPAddresses": {
            "serviceName": "Virtual Network",
            "defaultFree": false,
            "notes": "Standard SKU public IPs incur hourly charges."
        },
        "Microsoft.Network/bastionHosts": {
            "serviceName": "Azure Bastion",
            "defaultFree": false,
            "notes": "Azure Bastion has per-hour charges."
        },
        "Microsoft.Network/natGateways": {
            "serviceName": "NAT Gateway",
            "defaultFree": false,
            "notes": "NAT Gateways have per-hour and per-GB charges."
        },
        "Microsoft.Network/privateDnsZones": {
            "serviceName": "Azure DNS",
            "defaultFree": false,
            "notes": "Private DNS zones incur per-zone and per-query charges."
        },
        "Microsoft.Network/dnsZones": {
            "serviceName": "Azure DNS",
            "defaultFree": false,
            "notes": "Public DNS zones incur per-zone and per-query charges."
        },
        "Microsoft.Network/networkInterfaces": {
            "serviceName": "Virtual Network",
            "defaultFree": true,
            "notes": "NICs are free."
        },
        "Microsoft.Network/virtualNetworkPeerings": {
            "serviceName": "Virtual Network",
            "defaultFree": false,
            "notes": "VNet peering has per-GB data transfer charges."
        },
        "Microsoft.Network/firewallPolicies": {
            "serviceName": "Azure Firewall",
            "defaultFree": false,
            "notes": "Firewall policies are part of Azure Firewall billing."
        },
        "Microsoft.Network/azureFirewalls": {
            "serviceName": "Azure Firewall",
            "defaultFree": false,
            "notes": "Azure Firewall has per-deployment-hour and per-GB charges."
        },
        "Microsoft.Network/applicationGateways": {
            "serviceName": "Application Gateway",
            "defaultFree": false,
            "notes": "Application Gateway has per-hour and per-CU charges."
        },
        "Microsoft.Network/loadBalancers": {
            "serviceName": "Load Balancer",
            "defaultFree": false,
            "notes": "Standard LB has per-hour and per-rule charges. Basic LB is free."
        },
        "Microsoft.Network/vpnGateways": {
            "serviceName": "VPN Gateway",
            "defaultFree": false,
            "notes": "VPN Gateways have per-hour charges based on SKU."
        },
        "Microsoft.Network/expressRouteCircuits": {
            "serviceName": "ExpressRoute",
            "defaultFree": false,
            "notes": "ExpressRoute has per-circuit and per-GB charges."
        },
        "Microsoft.Network/privateEndpoints": {
            "serviceName": "Azure Private Link",
            "defaultFree": false,
            "notes": "Private endpoints have per-hour and per-GB charges."
        },
        "Microsoft.Storage/storageAccounts": {
            "serviceName": "Storage",
            "defaultFree": false,
            "notes": "Storage accounts have per-GB, per-transaction, and per-operation charges."
        },
        "Microsoft.KeyVault/vaults": {
            "serviceName": "Key Vault",
            "defaultFree": false,
            "notes": "Key Vault has per-operation charges."
        },
        "Microsoft.Compute/virtualMachines": {
            "serviceName": "Virtual Machines",
            "defaultFree": false,
            "notes": "VMs have per-hour charges based on size."
        },
        "Microsoft.Compute/disks": {
            "serviceName": "Storage",
            "defaultFree": false,
            "notes": "Managed disks have per-GB charges based on tier."
        },
        "Microsoft.ContainerService/managedClusters": {
            "serviceName": "Azure Kubernetes Service",
            "defaultFree": false,
            "notes": "AKS control plane is free for standard tier; node pools incur VM charges."
        },
        "Microsoft.ContainerRegistry/registries": {
            "serviceName": "Container Registry",
            "defaultFree": false,
            "notes": "ACR has per-day charges based on SKU."
        },
        "Microsoft.Web/serverfarms": {
            "serviceName": "Azure App Service",
            "defaultFree": false,
            "notes": "App Service Plans have per-hour charges based on SKU. Free tier available."
        },
        "Microsoft.Web/sites": {
            "serviceName": "Azure App Service",
            "defaultFree": false,
            "notes": "Web Apps inherit pricing from their App Service Plan."
        },
        "Microsoft.Sql/servers": {
            "serviceName": "SQL Database",
            "defaultFree": true,
            "notes": "SQL logical server is free; databases are paid."
        },
        "Microsoft.Sql/servers/databases": {
            "serviceName": "SQL Database",
            "defaultFree": false,
            "notes": "SQL databases have per-DTU or per-vCore charges."
        },
        "Microsoft.OperationalInsights/workspaces": {
            "serviceName": "Log Analytics",
            "defaultFree": false,
            "notes": "Log Analytics has per-GB ingestion charges. Free tier: 5 GB/month."
        },
        "Microsoft.Insights/components": {
            "serviceName": "Application Insights",
            "defaultFree": false,
            "notes": "Application Insights has per-GB ingestion charges."
        },
        "Microsoft.ManagedIdentity/userAssignedIdentities": {
            "serviceName": "Managed Identity",
            "defaultFree": true,
            "notes": "User-assigned managed identities are free."
        },
        "Microsoft.Authorization/roleAssignments": {
            "serviceName": "Azure Active Directory",
            "defaultFree": true,
            "notes": "Role assignments are free control-plane operations."
        },
        "Microsoft.Authorization/policyAssignments": {
            "serviceName": "Azure Policy",
            "defaultFree": true,
            "notes": "Azure Policy is free for built-in policies."
        },
        "Microsoft.Resources/resourceGroups": {
            "serviceName": "Resource Group",
            "defaultFree": true,
            "notes": "Resource groups are free containers."
        },
        "Microsoft.Resources/deployments": {
            "serviceName": "Deployments",
            "defaultFree": true,
            "notes": "ARM deployments are free."
        },
        "Microsoft.Portal/dashboards": {
            "serviceName": "Azure Portal",
            "defaultFree": true,
            "notes": "Dashboards are free."
        }
    }
}