Skip to content

arm-no-path-casing-conflicts

Full name
@azure-tools/typespec-azure-resource-manager/arm-no-path-casing-conflicts

ARM 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.

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;
}
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;
}

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.