Microsoft documents recommended abbreviations for Azure resource types as well as resource type specific naming rules and restrictions. Microsoft also publishes the Azure Naming Tool which happens to contain a structured repository of Azure resource type abbreviations and naming rules.
You can get a quick searchable grid of this data using PowerShell. If you prefer you can replace the Windows-only Out-GridView with the cross platform Out-ConsoleGridView.
(irm https://raw.githubusercontent.com/mspnp/AzureNamingTool/main/src/repository/resourcetypes.json) `
|select resource,property,shortname,scope,lengthmin,lengthmax,validtext,invalidtext,invalidcharacters,regx `
|ogv -t 'Azure resource naming abbreviations, rules and restrictions'
Alternatively you can transform the source into a Json object indexed by resource type:
(irm https://raw.githubusercontent.com/mspnp/AzureNamingTool/main/src/repository/resourcetypes.json) `
|%{$x=[pscustomobject]::new()}{$x|add-member -notepropertyname "$($_.resource)$($_.property?" ($($_.property))":'')" -notepropertyvalue $_.shortname}{$x} `
|convertto-json|out-file resourcetypes.json
Which you can consume in your Bicep files:
Warning
Doing this increases your final compiled template size somewhat.