Awesome Reviewers

Treat template parameters and embedded ARM calls as a client-facing API contract. Validate inputs and constrain the “request schema” so invalid values can’t be sent, and keep compatibility/UX aligned with how the template is consumed.

Apply:

Example (constrained mode + dependent settings):

@description('Security type')
@allowed([
  'Standard'
  'TrustedLaunch'
])
param securityType string = 'TrustedLaunch'

@description('Secure Boot (only valid when securityType is TrustedLaunch)')
param secureBoot bool = true

Example (use correct method/intrinsic for consistent outputs):

value storageKey = storageAccount.listKeys().keys[0].value