{ "rules": { "operations-tags": { "severity": "error", "description": "Operation must have tags.", "message": "Missing {{property}} at {{path}}.", "given": "$.paths.*[get,post,patch,put,delete]", "then": [{"field":"tags","function":"truthy"}] } , "operations-description-length": { "description": "Operation description should be short and sweet, no full stops, and less than 20 characters", "given": "$.paths.*[get,post,patch,put,delete]", "recommended": true, "then": [{"field":"description","function":"length","functionOptions":{"max":20}}], "type": "style" } , "operations-description-words-check": { "description": "Must not contain specific words, including REST, Public, and Developer.", "given": "$.paths.*[get,post,patch,put,delete].description", "recommended": true, "then": {"function":"pattern","functionOptions":{"notMatch":"\\b(word|word|word)\\b"}}, "type": "style" } , "operations-description": { "severity": "error", "message": "Missing {{property}} at {{path}}.", "given": "$.paths.*[get,post,patch,put,delete]", "then": [{"field":"description","function":"truthy"}] } , "operations-operationids-camel-case": { "description": "Operation IDs MUST be written in camelCase.", "given": "$.paths.*[get,post,patch,put,delete].operationId", "message": "{{property}} is not camelCase {{error}}", "recommended": true, "then": {"function":"casing","functionOptions":{"type":"camel"}}, "type": "style" } , "operations-operationids-kebab-case": { "description": "Operation IDs MUST be written in kebab-case.", "given": "$.paths.*[get,post,patch,put,delete].operationId", "message": "{{property}} is not kebab-case {{error}}", "recommended": true, "then": {"function":"casing","functionOptions":{"type":"kebab"}}, "type": "style" } , "operations-operationids-pascal-case": { "description": "Operation IDs MUST be written in PascalCase.", "given": "$.paths.*[get,post,patch,put,delete].operationId", "message": "{{property}} is not PascalCase {{error}}", "recommended": true, "then": {"function":"casing","functionOptions":{"type":"pascal"}}, "type": "style" } , "operations-summary-length": { "description": "Operation summary should be short and sweet, no full stops, and less than 20 characters", "given": "$.paths.*[get,post,patch,put,delete]", "recommended": true, "then": [{"field":"summary","function":"length","functionOptions":{"max":20}}], "type": "style" } , "operations-summary-words-check": { "description": "Must not contain specific words, including REST, Public, and Developer.", "given": "$.paths.*[get,post,patch,put,delete].summary", "recommended": true, "then": {"function":"pattern","functionOptions":{"notMatch":"\\b(word|word|word)\\b"}}, "type": "style" } , "operations-summary": { "severity": "error", "message": "Missing {{property}} at {{path}}.", "given": "$.paths.*[get,post,patch,put,delete]", "then": [{"field":"summary","function":"truthy"}] } , "operations-tags-one": { "description": "Must have at least one tag.", "given": "$", "severity": "error", "then": {"field":"tags","function":"length","functionOptions":{"min":1}}, "type": "style" } }}