Moody's Corporation · API Governance Rules

Moody's Corporation API Rules

Spectral linting rules defining API design standards and conventions for Moody's Corporation.

6 Rules error 2 warn 4
View Rules File View on GitHub

Rule Categories

moodys

Rules

warn
moodys-operation-summary-prefix
All operation summaries should start with "Moody's" for branding consistency.
$.paths[*][get,put,post,delete,patch].summary
warn
moodys-operation-summary-title-case
Operation summaries should be in Title Case.
$.paths[*][get,put,post,delete,patch].summary
warn
moodys-tag-title-case
Tag names should be in Title Case.
$.tags[*].name
error
moodys-oauth2-required
APIs must define OAuth2 client-credentials security at the root.
$.components.securitySchemes
error
moodys-server-https
All server URLs must use https.
$.servers[*].url
warn
moodys-operation-id-camel-case
operationId must be camelCase.
$.paths[*][get,put,post,delete,patch].operationId

Spectral Ruleset

Raw ↑
extends: ["spectral:oas"]
rules:
  moodys-operation-summary-prefix:
    description: All operation summaries should start with "Moody's" for branding consistency.
    severity: warn
    given: "$.paths[*][get,put,post,delete,patch].summary"
    then:
      function: pattern
      functionOptions:
        match: "^Moody's "

  moodys-operation-summary-title-case:
    description: Operation summaries should be in Title Case.
    severity: warn
    given: "$.paths[*][get,put,post,delete,patch].summary"
    then:
      function: pattern
      functionOptions:
        match: "^[A-Z][A-Za-z0-9'’()/&,.\\- ]*$"

  moodys-tag-title-case:
    description: Tag names should be in Title Case.
    severity: warn
    given: "$.tags[*].name"
    then:
      function: pattern
      functionOptions:
        match: "^[A-Z][A-Za-z0-9 &/'()-]*$"

  moodys-oauth2-required:
    description: APIs must define OAuth2 client-credentials security at the root.
    severity: error
    given: "$.components.securitySchemes"
    then:
      function: schema
      functionOptions:
        schema:
          type: object
          properties:
            oauth2:
              type: object
          required: [oauth2]

  moodys-server-https:
    description: All server URLs must use https.
    severity: error
    given: "$.servers[*].url"
    then:
      function: pattern
      functionOptions:
        match: "^https://"

  moodys-operation-id-camel-case:
    description: operationId must be camelCase.
    severity: warn
    given: "$.paths[*][get,put,post,delete,patch].operationId"
    then:
      function: pattern
      functionOptions:
        match: "^[a-z][a-zA-Z0-9]*$"