Archrock · API Governance Rules

Archrock API Rules

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

12 Rules error 7 warn 5
View Rules File View on GitHub

Rule Categories

archrock

Rules

error
archrock-quarterly-year-required
Quarterly financials must include year
$.components.schemas.QuarterlyFinancials.properties
error
archrock-fleet-utilization-rate
Fleet statistics must include utilization rate
$.components.schemas.FleetStatistics.properties
error
archrock-equipment-status-enum
Equipment status must be a valid enum value
$.components.schemas.Equipment.properties.status
error
archrock-sec-filing-type-enum
SEC filing type must be a valid enum value
$.components.schemas.SecFiling.properties.type
warn
archrock-list-responses-have-total
List responses must include a total count
$.components.schemas[*List].properties
warn
archrock-list-responses-have-limit
List responses must include a limit field
$.components.schemas[*List].properties
warn
archrock-operations-have-tags
All API operations must have tags
$.paths[*][get,post,put,patch,delete]
error
archrock-operations-have-summary
All API operations must have a summary
$.paths[*][get,post,put,patch,delete]
error
archrock-operations-have-operation-id
All API operations must have an operationId
$.paths[*][get,post,put,patch,delete]
warn
archrock-api-key-security
API must use API key security scheme
$.components.securitySchemes
warn
archrock-info-contact-required
API info must include contact information
$.info
error
archrock-servers-defined
API must define at least one server
$

Spectral Ruleset

Raw ↑
rules:
  archrock-quarterly-year-required:
    description: Quarterly financials must include year
    message: QuarterlyFinancials must have a year property
    severity: error
    given: "$.components.schemas.QuarterlyFinancials.properties"
    then:
      field: year
      function: truthy

  archrock-fleet-utilization-rate:
    description: Fleet statistics must include utilization rate
    message: FleetStatistics must have a utilizationRate property
    severity: error
    given: "$.components.schemas.FleetStatistics.properties"
    then:
      field: utilizationRate
      function: truthy

  archrock-equipment-status-enum:
    description: Equipment status must be a valid enum value
    message: Equipment status must be active, idle, or maintenance
    severity: error
    given: "$.components.schemas.Equipment.properties.status"
    then:
      field: enum
      function: truthy

  archrock-sec-filing-type-enum:
    description: SEC filing type must be a valid enum value
    message: SecFiling type must be a valid SEC form type
    severity: error
    given: "$.components.schemas.SecFiling.properties.type"
    then:
      field: enum
      function: truthy

  archrock-list-responses-have-total:
    description: List responses must include a total count
    message: List schema must include a total property
    severity: warn
    given: "$.components.schemas[*List].properties"
    then:
      field: total
      function: truthy

  archrock-list-responses-have-limit:
    description: List responses must include a limit field
    message: List schema must include a limit property
    severity: warn
    given: "$.components.schemas[*List].properties"
    then:
      field: limit
      function: truthy

  archrock-operations-have-tags:
    description: All API operations must have tags
    message: Operation must include at least one tag
    severity: warn
    given: "$.paths[*][get,post,put,patch,delete]"
    then:
      field: tags
      function: truthy

  archrock-operations-have-summary:
    description: All API operations must have a summary
    message: Operation must include a summary
    severity: error
    given: "$.paths[*][get,post,put,patch,delete]"
    then:
      field: summary
      function: truthy

  archrock-operations-have-operation-id:
    description: All API operations must have an operationId
    message: Operation must include an operationId
    severity: error
    given: "$.paths[*][get,post,put,patch,delete]"
    then:
      field: operationId
      function: truthy

  archrock-api-key-security:
    description: API must use API key security scheme
    message: API should define an ApiKey security scheme
    severity: warn
    given: "$.components.securitySchemes"
    then:
      field: ApiKeyAuth
      function: truthy

  archrock-info-contact-required:
    description: API info must include contact information
    message: Info object must have a contact field
    severity: warn
    given: "$.info"
    then:
      field: contact
      function: truthy

  archrock-servers-defined:
    description: API must define at least one server
    message: Servers array must be defined
    severity: error
    given: "$"
    then:
      field: servers
      function: truthy