Public/Test-FMTFlexVnetRole.ps1

function Test-FMTFlexVnetRole {
    param(
        [parameter()]
        [string] $name
    )

    $actions = @(
        "Microsoft.Network/loadBalancers/read"
        "Microsoft.Network/loadBalancers/write"
        "Microsoft.Network/loadBalancers/delete"
        "Microsoft.Network/loadBalancers/backendAddressPools/read"
        "Microsoft.Network/loadBalancers/backendAddressPools/write"
        "Microsoft.Network/loadBalancers/backendAddressPools/delete"
        "Microsoft.Network/loadBalancers/backendAddressPools/join/action"
        "Microsoft.Network/loadBalancers/backendAddressPools/backendPoolAddresses/read"
        "Microsoft.Network/loadBalancers/frontendIPConfigurations/read"
        "Microsoft.Network/loadBalancers/frontendIPConfigurations/join/action"
        "Microsoft.Network/virtualNetworks/read"
        "Microsoft.Network/virtualNetworks/write"
        "Microsoft.Network/virtualNetworks/joinLoadBalancer/action"
        "Microsoft.Network/virtualNetworks/join/action"
        "Microsoft.Network/virtualNetworks/peer/action"
        "Microsoft.Network/virtualNetworks/subnets/read"
        "Microsoft.Network/virtualNetworks/subnets/write"
        "Microsoft.Network/virtualNetworks/subnets/delete"
        "Microsoft.Network/virtualNetworks/subnets/joinLoadBalancer/action"
        "Microsoft.Network/virtualNetworks/subnets/join/action"
        "Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action"
        "Microsoft.Network/networkSecurityGroups/read"
        "Microsoft.Network/networkSecurityGroups/write"
        "Microsoft.Network/networkSecurityGroups/delete"
        "Microsoft.Network/networkSecurityGroups/join/action"
        "Microsoft.Network/networkInterfaces/read"
        "Microsoft.Network/networkInterfaces/write"
        "Microsoft.Network/networkInterfaces/join/action"
        "Microsoft.Network/networkInterfaces/delete"
        "Microsoft.Network/networkInterfaces/effectiveRouteTable/action"
        "Microsoft.Network/networkInterfaces/effectiveNetworkSecurityGroups/action" 
    )

    $role = Get-AzRoleDefinition -Name $name

    if ($role.Actions -ne '*') {
        $missing = @()

        foreach ($i in $actions) {
            $actionCheck = $role.Actions | Where-Object {$_ -eq $i}
            if (!$actionCheck) {
                $missing += $i
            }
        }
    
        if ($missing) {
            $message = 'The following required actions ar absent from the role:'
            $message
            $missing
        } else {
            return 'All role action requirements are met'
        }
    } else {
            return 'All role action requirements are met'
        }
}