no-query-in-collection
@azure-tools/typespec-azure-resource-manager/no-query-in-collectionARM collection GET operations must not declare query parameters beyond api-version and $filter.
ARM collection GET operations may use only the standard api-version and $filter query parameters. Additional query parameters make list operations inconsistent across resource providers and introduce nonstandard method parameters in generated SDKs.
The rule applies to GET operations whose emitted ARM path identifies a resource collection. Query parameter names are case-sensitive, so $FILTER is not equivalent to $filter.
Incorrect
Section titled “Incorrect”@armProviderNamespacenamespace Microsoft.Contoso;
@route("/subscriptions/{subscriptionId}/providers/Microsoft.Contoso/widgets")@getop listWidgets( @path subscriptionId: string, @query("api-version") apiVersion: string, @query continuationToken?: string,): void;Correct
Section titled “Correct”@armProviderNamespacenamespace Microsoft.Contoso;
@route("/subscriptions/{subscriptionId}/providers/Microsoft.Contoso/widgets")@getop listWidgets( @path subscriptionId: string, @query("api-version") apiVersion: string, @query("$filter") filter?: string,): void;LintDiff Equivalent
Section titled “LintDiff Equivalent”This rule is the native TypeSpec equivalent of the Swagger validator rule QueryParametersInCollectionGet.