Skip to content

point-operation-invalid-query-parameter

Id
@azure-tools/typespec-azure-resource-manager/point-operation-invalid-query-parameter

Point operations must not declare query parameters beyond api-version.


title: “point-operation-invalid-query-parameter”

Section titled “title: “point-operation-invalid-query-parameter””
Full name
@azure-tools/typespec-azure-resource-manager/point-operation-invalid-query-parameter

ARM point operations using GET, PUT, PATCH, or DELETE must not define query parameters other than api-version.

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

This rule corresponds to the Swagger linter rule ValidQueryParametersForPointOperations.

@route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Contoso/widgets/{widgetName}")
interface Widgets {
@get
get(
@path subscriptionId: string,
@path resourceGroupName: string,
@path widgetName: string,
@query("api-version") apiVersion: string,
@query expand?: string,
): Widget;
}
@route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Contoso/widgets/{widgetName}")
interface Widgets {
@get
get(
@path subscriptionId: string,
@path resourceGroupName: string,
@path widgetName: string,
@query("api-version") apiVersion: string,
): Widget;
}

Query parameters remain valid on collection operations because they are outside this rule’s scope:

@route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Contoso/widgets")
interface Widgets {
@get
list(
@path subscriptionId: string,
@path resourceGroupName: string,
@query("api-version") apiVersion: string,
@query top?: int32,
): WidgetListResult;
}

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.