no-query-in-point-op
@azure-tools/typespec-azure-resource-manager/no-query-in-point-opPoint operations must not declare query parameters beyond api-version.
ARM point operations using GET, PUT, PATCH, or DELETE must not define query parameters other than api-version.
A point operation targets one specific ARM resource instance. Its path contains the provider namespace followed by one or more resource type and resource name pairs, such as /providers/Microsoft.Contoso/widgets/{widgetName}. Collection and action operations are not point operations.
Impact
Section titled “Impact”- Area: API, SDK
Additional query parameters on point operations make the resource contract inconsistent with ARM RPC guidance and can complicate generated SDK method signatures.
LintDiff Equivalent
Section titled “LintDiff Equivalent”This rule corresponds to the Swagger linter rule ValidQueryParametersForPointOperations.
❌ Incorrect
Section titled “❌ Incorrect”model Widget is TrackedResource<WidgetProperties> { ...ResourceNameParameter<Widget>;}
model WidgetProperties {}
model ExtraReadParameters { @query expand?: string;}
@armResourceOperationsinterface Widgets { get is ArmResourceRead<Widget, Parameters = ExtraReadParameters>;}✅ Correct
Section titled “✅ Correct”model Widget is TrackedResource<WidgetProperties> { ...ResourceNameParameter<Widget>;}
model WidgetProperties {}
@armResourceOperationsinterface Widgets { get is ArmResourceRead<Widget>;}Query parameters remain valid on collection operations because they are outside this rule’s scope:
model Widget is TrackedResource<WidgetProperties> { ...ResourceNameParameter<Widget>;}
model WidgetProperties {}
@armResourceOperationsinterface Widgets { list is ArmResourceListByParent<Widget, Parameters = ArmTopParameter>;}Suppression
Section titled “Suppression”Do not suppress this rule unless the operation is intentionally exempt from ARM RPC guidance. Remove the additional query parameter or model the API as a collection or action operation when that better reflects its semantics.