The role that denies nothing
A custom role written to withhold delete. NotActions subtracts from this role alone, so anyone who also holds Contributor can still delete, and nothing about this definition changes that.
{
"roleName": "Contributor without delete",
"assignableScopes": ["/subscriptions/00000000-0000-0000-0000-000000000000"],
"permissions": [
{
"actions": ["*"],
"notActions": ["Microsoft.Compute/virtualMachines/delete"],
"dataActions": [],
"notDataActions": []
}
]
}