mlsgrid · API Governance Rules

mlsgrid API Rules

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

5 Rules error 2 warn 2 info 1
View Rules File View on GitHub

Rule Categories

mlsgrid

Rules

warn
mlsgrid-operation-summary-title-case
Operation summaries must use Title Case.
$.paths.*.*.summary
error
mlsgrid-operation-tag-required
Every operation must declare exactly one tag.
$.paths.*.*
error
mlsgrid-bearer-auth-required
Bearer authentication scheme must be defined.
$.components.securitySchemes
warn
mlsgrid-odata-pagination-via-next-link
Collection responses should document the OData @odata.nextLink pagination pattern.
$.paths.*.get.responses['200'].content['application/json'].schema
info
mlsgrid-replication-filter-documented
Replication endpoints should document the OriginatingSystemName + ModificationTimestamp filter pattern.
$.paths.*.get.parameters[?(@.name=='$filter')].example

Spectral Ruleset

Raw ↑
extends:
- spectral:oas
rules:
  mlsgrid-operation-summary-title-case:
    description: Operation summaries must use Title Case.
    severity: warn
    given: $.paths.*.*.summary
    then:
      function: pattern
      functionOptions:
        match: '^[A-Z][A-Za-z0-9$]*( [A-Z$][A-Za-z0-9$]*)*$'
  mlsgrid-operation-tag-required:
    description: Every operation must declare exactly one tag.
    severity: error
    given: $.paths.*.*
    then:
      field: tags
      function: schema
      functionOptions:
        schema:
          type: array
          minItems: 1
          maxItems: 1
  mlsgrid-bearer-auth-required:
    description: Bearer authentication scheme must be defined.
    severity: error
    given: $.components.securitySchemes
    then:
      field: bearerAuth
      function: truthy
  mlsgrid-odata-pagination-via-next-link:
    description: Collection responses should document the OData @odata.nextLink pagination pattern.
    severity: warn
    given: $.paths.*.get.responses['200'].content['application/json'].schema
    then:
      function: schema
      functionOptions:
        schema:
          type: object
  mlsgrid-replication-filter-documented:
    description: Replication endpoints should document the OriginatingSystemName + ModificationTimestamp filter pattern.
    severity: info
    given: $.paths.*.get.parameters[?(@.name=='$filter')].example
    then:
      function: pattern
      functionOptions:
        match: 'OriginatingSystemName'