Moody's Corporation · API Governance Rules

Moody's Corporation API Rules

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

Moody’s Corporation API Rules is a Spectral governance ruleset published by Moody’s Corporation on the APIs.io network, containing 6 lint rules.

The ruleset includes 2 error-severity rules and 4 warning-severity rules.

Tagged areas include Analytics, Catastrophe Risk, Climate Risk, Compliance, and Credit Ratings.

Rulesets can be applied to your own OpenAPI specs via Spectral to enforce the same governance standards.

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]*$"