# BCPNFR19 - User-defined types - Naming Module Specification for the Azure Verified Modules (AVM) program ID: BCPNFR19 - User-defined types - Naming User-defined types (UDTs) MUST always end with the suffix (...)Type to make them obvious to users. In addition it is recommended to extend the suffix to (...)OutputType if a UDT is exclusively used for outputs. type subnet = { ... } // Wrong type subnetType = { ... } // Correct type subnetOutputType = { ... } // Correct, if used only for outputs Since User-defined types (UDTs) MUST always be singular as per BCPNFR18, their naming should reflect this and also be singular. type subnetsType = { ... } // Wrong type subnetType = { ... } // Correct --- Source: https://raw.githubusercontent.com/Azure/Azure-Verified-Modules/refs/heads/main/docs/content/specs-defs/includes/bicep/shared/non-functional/BCPNFR19.md Last Modified: 0001-01-01