rules:
- name: parameter-description
  object: parameter
  description: parameter objects should have a description
  truthy: description
- name: parameter-name-regex
  object: parameter
  disabled: true
  description: parameter names should match RFC6570
  pattern:
    property: name
    value: ''
- name: operation-operationId
  object: operation
  description: operation should have an operationId
  truthy: operationId
- name: operation-summary-or-description
  object: operation
  description: operation should have summary or description
  or:
  - summary
  - description
- name: operation-tags
  object: operation
  description: operation should have non-empty tags array
  truthy: tags
  skip: isCallback
- name: path-keys-no-trailing-slash
  object: paths
  description: paths should not end with a slash
  notEndWith:
    property: "$key"
    value: "/"
- name: server-trailing-slash
  object: server
  description: server url should not have a trailing slash
  notEndWith:
    property: url
    value: "/"
- name: openapi-tags
  object: openapi
  description: openapi object should have non-empty tags array
  truthy: tags
- name: openapi-tags-alphabetical
  object: openapi
  description: openapi object should have alphabetical tags
  alphabetical:
    properties: tags
    keyedBy: name
- name: reference-no-other-properties
  object: reference
  description: reference objects should only have a $ref property
  truthy: "$ref"
  properties: 1
- name: example-value-or-externalValue
  object: example
  description: example should have either value or externalValue
  xor:
  - value
  - externalValue
- name: default-and-example-are-redundant
  object: "*"
  description: don't need to define an example if its exactly the same as your default
  schema:
    dependencies:
      default:
        properties:
          example:
            not:
              const:
                "$data": "1/default"
- name: reference-components-regex
  object: reference
  disabled: true
  description: reference components should all match regex ^[a-zA-Z0-9\.\-_]+
  pattern:
    property: "$ref"
    omit: "#"
    split: "/"
    value: "^[a-zA-Z0-9\\.\\-_]+$"
- name: no-script-tags-in-markdown
  object: "*"
  description: markdown descriptions should not contain <script> tags
  notContain:
    properties:
    - description
    value: "<script"
- name: info-contact
  object: info
  description: info object should contain contact object
  truthy: contact
- name: license-apimatic-bug
  object: license
  description: license url should not point at gruntjs
  notContain:
    properties:
    - url
    value: gruntjs
- name: no-eval-in-descriptions
  object: "*"
  description: markdown descriptions should not contain 'eval('
  notContain:
    properties:
    - description
    - title
    value: eval(
