no-multiple-discriminator
@azure-tools/typespec-azure-core/no-multiple-discriminatorClasses should have at most one discriminator.
Using a nested polymophic relationship is not allowed in Azure services. Most JSON serializers and deserializers do not support this feature.
Impact
Section titled “Impact”- Area: SDK, API
Multiple discriminators are not supported by SDKs, nor by Swagger without extensions.
❌ Incorrect
Section titled “❌ Incorrect”@discriminator("fishtype")model Fish { fishtype: string;}
@discriminator("sharktype")model Shark extends Fish { fishtype: "shark"; sharktype: string;}
model WhiteShark extends Shark { sharktype: "white";}✅ Correct
Section titled “✅ Correct”@discriminator("fishtype")model Fish { fishtype: string;}
model Shark extends Fish { fishtype: "shark";}
model WhiteShark extends Fish { fishtype: "white-shark";}Suppression
Section titled “Suppression”Suppress only with SDK approval. Use a single discriminator and refactor additional discriminators onto child or sibling properties.