Ticketmaster · API Governance Rules

Ticketmaster API Rules

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

11 Rules error 3 warn 4 info 4
View Rules File View on GitHub

Rule Categories

ticketmaster

Rules

warn
ticketmaster-paths-json-suffix
Ticketmaster Discovery API paths must end with .json
$.paths[*]~
error
ticketmaster-apikey-param-required
All operations must accept an apikey query parameter
$.paths[*][get,post,put,delete]
warn
ticketmaster-tags-title-case
All tags must use Title Case
$.tags[*].name
warn
ticketmaster-operation-ids-camel-case
Operation IDs must use camelCase
$.paths[*][*].operationId
error
ticketmaster-responses-200-on-get
GET operations must have a 200 response
$.paths[*].get
info
ticketmaster-responses-401-on-get
GET operations should document 401 unauthorized response
$.paths[*].get
info
ticketmaster-responses-404-on-resource
Single resource GET endpoints should document 404 response
$.paths[?(/\{.*\}/)].get
error
ticketmaster-servers-https-only
All server URLs must use HTTPS
$.servers[*].url
info
ticketmaster-pagination-in-list-ops
List operations should support size and page parameters
$.paths[*~$(\.json)].get.parameters
info
ticketmaster-embedded-response-structure
Collection responses should use HAL _embedded structure
$.components.schemas[?(@.properties._embedded)]
warn
ticketmaster-info-version-semver
API version should be documented
$.info

Spectral Ruleset

Raw ↑
extends:
  - spectral:oas

rules:
  ticketmaster-paths-json-suffix:
    description: Ticketmaster Discovery API paths must end with .json
    severity: warn
    given: "$.paths[*]~"
    then:
      function: pattern
      functionOptions:
        match: "^.*\\.json$"

  ticketmaster-apikey-param-required:
    description: All operations must accept an apikey query parameter
    severity: error
    given: "$.paths[*][get,post,put,delete]"
    then:
      field: parameters
      function: defined

  ticketmaster-tags-title-case:
    description: All tags must use Title Case
    severity: warn
    given: "$.tags[*].name"
    then:
      function: pattern
      functionOptions:
        match: "^[A-Z][a-zA-Z0-9 &-]+$"

  ticketmaster-operation-ids-camel-case:
    description: Operation IDs must use camelCase
    severity: warn
    given: "$.paths[*][*].operationId"
    then:
      function: pattern
      functionOptions:
        match: "^[a-z][a-zA-Z0-9]+$"

  ticketmaster-responses-200-on-get:
    description: GET operations must have a 200 response
    severity: error
    given: "$.paths[*].get"
    then:
      field: responses.200
      function: defined

  ticketmaster-responses-401-on-get:
    description: GET operations should document 401 unauthorized response
    severity: info
    given: "$.paths[*].get"
    then:
      field: responses.401
      function: defined

  ticketmaster-responses-404-on-resource:
    description: Single resource GET endpoints should document 404 response
    severity: info
    given: "$.paths[?(/\\{.*\\}/)].get"
    then:
      field: responses.404
      function: defined

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

  ticketmaster-pagination-in-list-ops:
    description: List operations should support size and page parameters
    severity: info
    given: "$.paths[*~$(\\.json)].get.parameters"
    then:
      function: defined

  ticketmaster-embedded-response-structure:
    description: Collection responses should use HAL _embedded structure
    severity: info
    given: "$.components.schemas[?(@.properties._embedded)]"
    then:
      field: properties._embedded
      function: defined

  ticketmaster-info-version-semver:
    description: API version should be documented
    severity: warn
    given: "$.info"
    then:
      field: version
      function: defined