packages/rulesets/src/native/legacyRules/DeleteOperationResponses.ts (22 lines of code) (raw):

/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { MergeStates, OpenApiTypes, rules } from "@microsoft.azure/openapi-validator-core" export const DeleteOperationResponses = "DeleteOperationResponses" // RPC Code: RPC-Delete-V1-01 rules.push({ id: "R4011", name: DeleteOperationResponses, severity: "error", category: "ARMViolation", mergeState: MergeStates.individual, openapiType: OpenApiTypes.arm, appliesTo_JsonQuery: "$.paths.*.delete.responses", *run(doc, node, path) { // async delete is not in the scope if (node["202"] || node["x-ms-long-running-operation"]) { return } if (!node["200"] || !node["204"] || !Object.keys(node["200"]) || !Object.keys(node["204"])) { yield { message: `The delete operation is defined without a 200 or 204 error response implementation,please add it.'`, location: path } } } })