arm-no-path-casing-conflicts
@azure-tools/typespec-azure-resource-manager/arm-no-path-casing-conflictsARM operation paths must be unique case-insensitively. Two operations whose
paths differ only by character casing (for example /foos and /Foos, or
/{scope}/... and /{Scope}/...) violate this rule. Path parameter names
are part of the comparison: paths whose parameter names differ (for example
/{resourceUri}/... versus /{scope}/...) are treated as distinct.
❌ Incorrect
Section titled “❌ Incorrect”model Foo is ProxyResource<{}> { @key("name") @path @segment("foos") @visibility(Lifecycle.Read) name: string;}
model Bar is ProxyResource<{}> { @key("name") @path @segment("Foos") // conflicts case-insensitively with `foos` above @visibility(Lifecycle.Read) name: string;}✅ Correct
Section titled “✅ Correct”model Foo is ProxyResource<{}> { @key("name") @path @segment("foos") @visibility(Lifecycle.Read) name: string;}
model Bar is ProxyResource<{}> { @key("name") @path @segment("bars") @visibility(Lifecycle.Read) name: string;}Reviewer advice
Section titled “Reviewer advice”Impacts the API and generated SDKs: paths that differ only by casing can cause ARM manifest failures. Ask the author to normalize the path casing so every reference uses a single, consistent case. Do not accept a suppression unless the reported conflict is a false positive.