extends: spectral:oas rules: aws-billing-operation-summary-title-case: description: All operation summaries must use Title Case message: "Operation summary '{{value}}' must be in Title Case" severity: warn given: "$.paths[*][*].summary" then: function: pattern functionOptions: match: "^([A-Z][a-z0-9]*(\\s[A-Z][a-z0-9]*)*|[A-Z]+)$" aws-billing-operation-tags: description: All operations must have at least one tag message: Operation must have at least one tag severity: error given: "$.paths[*][*]" then: field: tags function: truthy aws-billing-operation-id: description: All operations must have an operationId message: Operation must have an operationId severity: error given: "$.paths[*][*]" then: field: operationId function: truthy aws-billing-operation-description: description: All operations must have a description message: Operation must have a description severity: warn given: "$.paths[*][*]" then: field: description function: truthy aws-billing-error-responses: description: All operations must define error responses message: Operation must define 4xx or 5xx error responses severity: warn given: "$.paths[*][*]" then: function: schema functionOptions: schema: type: object properties: responses: type: object minProperties: 2