packages/rulesets/src/native/legacyRules/PathResourceProviderNamePascalCase.ts (26 lines of code) (raw):

import { rules , MergeStates, OpenApiTypes } from "@microsoft.azure/openapi-validator-core" import { getAllResourceProvidersFromPath, resourceProviderMustPascalCase } from "../utilities/rules-helper" export const PathResourceProviderNamePascalCase = "PathResourceProviderNamePascalCase" rules.push({ id: "R3020", name: PathResourceProviderNamePascalCase, severity: "error", category: "ARMViolation", mergeState: MergeStates.individual, openapiType: OpenApiTypes.arm, *run(doc, node, path) { if (node.paths !== undefined) { const msg = "Resource provider naming must follow the pascal case." const paths: string[] = Object.keys(node.paths) for (const it of paths) { const resourceProviders = getAllResourceProvidersFromPath(it) if (resourceProviders.some(rp => !resourceProviderMustPascalCase(rp))) { yield { message: `${msg} Path: '${it}'`, location: path.concat(["paths", it]) } } } } } })