Nagios · API Governance Rules

Nagios API Rules

Spectral linting rules defining API design standards and conventions for Nagios.

5 Rules error 2 warn 3
View Rules File View on GitHub

Rule Categories

nagios

Rules

warn
nagios-summary-title-case
Operation summaries should use Title Case.
$.paths..[get,post,put,delete].summary
error
nagios-apikey-security
Every operation must declare apikey-based security (Nagios XI uses per-user API keys).
$.paths..[get,post,put,delete]
warn
nagios-tag-vocabulary
Tags must come from the Nagios XI section vocabulary (Objects, Config, System).
$.paths..[get,post,put,delete].tags[*]
warn
nagios-operation-id-camel
operationId must be lowerCamelCase.
$.paths..[get,post,put,delete].operationId
error
nagios-response-200
Every operation must define a 200 response.
$.paths..[get,post,put,delete].responses

Spectral Ruleset

Raw ↑
extends: [[spectral:oas, all]]
documentationUrl: https://github.com/api-evangelist/nagios

rules:
  nagios-summary-title-case:
    description: Operation summaries should use Title Case.
    severity: warn
    given: $.paths..[get,post,put,delete].summary
    then:
      function: pattern
      functionOptions:
        match: '^([A-Z][A-Za-z0-9]*)( ([A-Z][A-Za-z0-9]*|API|REST|JSON|XML|URL|ID))*$'
  nagios-apikey-security:
    description: Every operation must declare apikey-based security (Nagios XI uses per-user API keys).
    severity: error
    given: $.paths..[get,post,put,delete]
    then:
      field: security
      function: truthy
  nagios-tag-vocabulary:
    description: Tags must come from the Nagios XI section vocabulary (Objects, Config, System).
    severity: warn
    given: $.paths..[get,post,put,delete].tags[*]
    then:
      function: enumeration
      functionOptions:
        values: [Objects, Config, System]
  nagios-operation-id-camel:
    description: operationId must be lowerCamelCase.
    severity: warn
    given: $.paths..[get,post,put,delete].operationId
    then:
      function: pattern
      functionOptions:
        match: '^[a-z][a-zA-Z0-9]+$'
  nagios-response-200:
    description: Every operation must define a 200 response.
    severity: error
    given: $.paths..[get,post,put,delete].responses
    then:
      field: '200'
      function: truthy