Unable to apply azure naming convention policy

Unable to apply azure naming convention for resource group at subscription level

resource “azurerm_policy_definition” “policy” {

name = “PaC-Naming-Convention02rg”

policy_type = “Custom”

mode = “Indexed”

display_name = “PaC_Naming_Convention01”

metadata = <<METADATA

{

"category": "Demo"

}

METADATA

policy_rule = <<POLICY_RULE

{

"if": {

    "allOf":[

        {

            "not":{

                "field":"name",

                "match":"[parameters('namePattern')]"

            }

        },

        {

            "field": "type",

            "equals": "Microsoft.Resources/resourceGroups"

        }

    ]

},

"then": { 

  "effect": "deny"

}

}

POLICY_RULE

parameters = <<PARAMETERS

{

    "namePattern":{

        "type": "String",

        "metadata":{

            "displayName": "namePattern",

            "description": "? for letter, # for numbers"

        }

    }

}

PARAMETERS

}

data “azurerm_subscription” “current” {

}

Define Azure Policy Assignment

resource “azurerm_policy_assignment” “policy-assignment” {

name = “Naming-Convention-Assignment02”

scope = data.azurerm_subscription.current.id

policy_definition_id = azurerm_policy_definition.policy.id

description = “Naming convention for VM”

display_name = “Naming-Convention-Assignment”

parameters = <<PARAMETERS

{

“namePattern”: {

"value": "rg-?????-###"

}

}

PARAMETERS

}